Javascript之“集合“

简介: Javascript之“集合“

一种无序且唯一的数据结构


ES6中有集合Set


集合的常见操作:去重,判断元素是否在集合中,求交集


1. 集合操作


// 去重
const arr = [1, 2, 1, 3, 2]
const arr1 = [...new Set(arr)]
// 判断元素是否在集合中
const set = new Set(arr)
const has = set.has(2) // true
// 求交集
const set2 = new Set([2, 3])
const set3 = new Set([...set].filter(item => set2.has(item)))


2. 练习


两个数组的交集


3. 应用


  • 使用Set对象:new、add、delete、has、size


  • 迭代Set:多种迭代方法、Set和Array转换、求交集/差集


// new
let mySet = new Set()
// add
mySet.add(1)
mySet.add(5)
mySet.add(5)
mySet.add('some text')
let o = { a: 1, b: 2 }
mySet.add(0)
mySet.add({ a: 1, b: 2 })
// has
mySet.has('some text')
// delete
mySet.delete(5)
// 迭代
for(let item of mySet) console.log(item)
for(let [key, value] of mySet.entries()) console.log(key, value)
// Set和Array转换
const myArr = [...mySet]
const myArr1 = Array.from(mySet)
const mySet2 = new Set([1,2,3,4])
// 交集
const intersection = new Set([...mySet].filter(x => mySet2.has(x)))
// 差集
const difference = new Set([...mySet]).filter(x => !mySet2.has(x))
相关文章
|
6月前
|
资源调度 JavaScript 前端开发
Day.js常用方法集合
Day.js常用方法集合
210 0
|
6月前
|
JavaScript 前端开发 定位技术
JavaScript 中如何代理 Set(集合) 和 Map(映射)
JavaScript 中如何代理 Set(集合) 和 Map(映射)
109 0
|
5月前
|
存储 JavaScript 前端开发
JavaScript进阶-Map与Set集合
【6月更文挑战第20天】JavaScript的ES6引入了`Map`和`Set`,它们是高效处理集合数据的工具。`Map`允许任何类型的键,提供唯一键值对;`Set`存储唯一值。使用`Map`时,注意键可以非字符串,用`has`检查键存在。`Set`常用于数组去重,如`[...new Set(array)]`。了解它们的高级应用,如结构转换和高效查询,能提升代码质量。别忘了`WeakMap`用于弱引用键,防止内存泄漏。实践使用以加深理解。
78 3
|
2月前
|
JavaScript 前端开发 索引
JavaScript HTML DOM 集合(Collection)
JavaScript HTML DOM 集合(Collection)
28 4
|
4月前
|
JavaScript API 索引
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
66 0
|
4月前
|
存储 缓存 JavaScript
浅谈JS的映射和集合
浅谈JS的映射和集合
33 0
|
前端开发
前端学习笔记202306学习笔记第三十六天-js-对象是属性的无序集合1
前端学习笔记202306学习笔记第三十六天-js-对象是属性的无序集合1
50 0
|
6月前
|
缓存 JavaScript 前端开发
从0开始学习JavaScript--JavaScript中的集合类
JavaScript中的集合类是处理数据的关键,涵盖了数组、Set、Map等多种数据结构。本文将深入研究这些集合类的创建、操作,以及实际应用场景,并通过丰富的示例代码,帮助大家更全面地了解和应用这些概念。
|
11月前
|
存储 JavaScript 前端开发