数据结构与算法--集合

243 阅读1分钟

集合是什么?

集合是一种无序且唯一的数据结构。

ES6中有集合,名为Set。集合常用操作:去重、判断某元素是否在集合中,求交集

//去重
var arr = [1, 1, 2, 2];
var arr2 = [...new Set(arr)]

//判断元素是否在集合中
var set = new Set(arr);
var has = set.has(2);

//求交集
var set2 = new Set([2, 3, 4]);
var set3 = new Set([...set].filter(item => set2.has(item)))

前端与集合

var set4 = new Set();
set4.add(1);
set4.add(5);
set4.add('xxx');
set4.delete(1); 

var o = { a: 'a', b: 'b'};
set4.add(o);
set4.add(o);

//遍历
for (let key of set4.keys()) {
    console.log(key);
}

for (let item of set4.values()) {
    console.log(item);
}

for(let [key, item] of set4.entries()){
    console.log(key, item);
}

//Set与数组互转
let myArr = Array.from(set4);
let myArr2 = [...set4];

let mySet = new Set([1,2,3,4]);

//求交集、差集
var intersection = new Set([...set].filter(item => set2.has(item)))
var difference = new Set([...set, ...set2].filter(item => 
    (set.has(item) && !set2.has(item)) || (!set.has(item) && set2.has(item))
))

知识来源: coding.imooc.com/learn/list/…