14.集合
集合介绍和API
ES6提供了新的数据结构Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用【扩展运算符】和【for...of...】进行遍历,集合的属性和方法:
- size 返回集合的元素个数
- add 增加一个新元素,返回当前集合
- delete 删除元素,返回boolean值
- has 检测集合中是否包含某个元素,返回boolean值
//声明一个 set
let s = new Set();
let s2 = new Set(['大事','小事','好事','坏事','小事']);
//元素个数
console.log(s2.size);//4
console.log(s2);//set(4)['大事','小事','好事','坏事']
//添加新的元素
s2.add('喜事');
console.log(s2);//set(5)['大事','小事','好事','坏事','喜事']
//删除元素
s2.delete('坏事');
console.log(s2);//set(4)['大事','小事','好事','喜事']
//检测
console.log(s2.has('好事'));//true
//清空
s2.clear();
console.log(s2);//set(0)[]
for(let v of s2){
console.log(v);
}
//'大事'
//'小事'
//'好事'
//'喜事'
集合实践
let arr = [1,2,3,4,5,4,3,2,1];
//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)].filiter(item=>{
let s2 = new Set(arr2);//4 5 6
if(s2.has(item)){
return true;
}else{
return false;
}
})
console.log(result);//4,5
//简化
let result = [...new Set(arr)].filiter(item=>new Set(arr2.has(item));
console.log(result);//4,5
//3.并集
let union = [...new Set[...arr,...arr2]];
console.log(union);//1,2,3,4,5,6
//4.差集
let diff = [...new Set(arr)].filiter(item=> !(new Set(arr2.has(item)));
console.log(union);//1,2,3
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步