一种无序且唯一的数据结构
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))