集合

集合介绍与API

ES6提供了新的数据结构Set(集合).它类似于数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用【扩展运算符】和【for…of…】进行遍历,

集合的属性和方法:

​ 1.size 返回集合的元素个数

​ 2.add 增加一个元素,返回当前集合

​ 3.delete 删除元素,返回boolean值

​ 4.has 检测集合中是否包含某个元素,返回boolean值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//声明一个set
let s = new Set();
let s2= new Set(['da','dfe','few','asda']);
console.log(s2);
//元素个数
//console.log(s2.size);
//添加新的元素
//s2.add('fewew');
//删除元素
//s2.delete('da');
//检测
//console.log(s2.has('dfe')) //true
//清空
//s2.clear();
for(let v of s2){
console.log(v);
}

集合实践

1.数组去重
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let arr=[1,2,3,4,5,4,3,2,1];
let result=[...new Set(arr)];
console.log(result);//[1,2,3,4,5];
//2.交集
let arr2=[4,5,6,5,6];
let result=[...new Set(arr)].filter(item =>{
let s2= new Set(arr2);
if(s2.has(item)){
return true;
}else{
return false;
}
});
//简化
let result = [...new Set(arr)].filter(item => new Set(arr2).has(item));

//3.并集
let union =[...new Set([...arr,...arr2])];
console.log(union);//[1,2,3,4,5,6]
//4.差集
let diff = [...new Set(arr)].filter(item => !(new Set(arr2).has(item)));
console.log(diff);//[1,2,3]

集合
https://blog-theta-ten.vercel.app/2021/07/04/集合/
作者
Chen
发布于
2021年7月4日
许可协议