151-data_structure-11-set~集合简介

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)));