ES6提供了新的数据结构Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用「扩展运算符』和「 for …f…』进行遍历,集合的属性和方法:
- size返回集合的元素个数
- add增加一个新元素,返回当前集合
- delete删除元素,返回boolean值
- has检测集合中是否包含某个元素,返回boolean值
实例:
let arr = [1,2,3,2,5,6,2];
let set1 = new Set(arr);
// 元素个数size
console.log(set1.size);
//添加元素
set1.add(9)
//删除元素
set1.delete(5)
//检测元素
console.log(set1.has(5));
//遍历元素
for(let i of set1){
console.log(i);
}
//清空集合
set1.clear() ;
console.log(set1);
集合实践
let arr1 = [1,2,3,5,6,4,2,1];
console.log(arr1);
//1.数组去重
let s = [...new Set(arr1)];
console.log(s);
//排序
let s1 = s.sort((a,b)=>{
return a-b
})
console.log(s1);
//2.求交集
let arr2 = [3,4,5,6,8,7];
let s2 = [...(new Set(arr2))];
console.log(s2);
let result = s.filter(item=>{
return new Set(arr2).has(item)
})
console.log(result);
//3.求并集
let result2 = [...new Set([...arr1,...arr2])].sort((a,b)=>{
return a-b
});
console.log(result2);
//4.求差集
let result3 = s.filter(item=>{
return !(new Set(arr2).has(item))
})
console.log(result3);