151-data_structure-11-set~集合简介
概述
无序且唯一的数据结构
es6中有集合,名为Set
集合的常用操作:去重、判断元素是否在集合中、求交集
应用
// 去重
const arr = [1, 1, 2, 2];
const arr2 = [...new Set(arr)];
// 判断元素是否在集合中
const set = new Set(arr);
const has = set.has(3);
// 求交集
const set2 = new Set([2, 3]);
const set3 = new Set([...set].filter(item => set2.has(item)));
前端与集合
ES6set对象
概述
使用Set对象:new、add、delete、has、size
迭代Set: 多种迭代方法、Set与Array互转、求交集/差集
代码
1、基本使用
let mySet = new Set();
mySet.add(1);
mySet.add(5);
mySet.add(5);
mySet.add('some text');
let o = { a: 1, b: 2 };
mySet.add(o);
mySet.add({ a: 1, b: 2 });
const has = mySet.has(o);
mySet.delete(5);
2、迭代
集合set 的迭代
1. for of
2. 配合 keys 和 values 方法 ,在集合中,keys 和 values 是一样的
3. entries 方法
3、与数组转换
set 转换成 array:
1. [...set]
2. Array.from(set)
array 转换成 set:
1. set = new Set(arr)
4、交集和差集
const intersection = new Set([...mySet].filter(x => mySet2.has(x)));
const difference = new Set([...mySet].filter(x => !mySet2.has(x)));