14.集合

集合介绍和API

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

  1. size 返回集合的元素个数
  2. add 增加一个新元素,返回当前集合
  3. delete 删除元素,返回boolean值
  4. 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,1];
//1.数组去重
let result = [...new Set(arr)];
console.log(result);//[1,5]

//2.交集
let arr2 = [4,6,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,6

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


相关文章

原文连接:https://www.cnblogs.com/dupd/p/5951311.htmlES6...
以为Es6,javascript第一次支持了module。ES6的模块化分为导...
视频讲解关于异步处理,ES5的回调使我们陷入地狱,ES6的Prom...
TypeScript什么是TypeScript?TypeScript是由微软开发的一款开...
export class AppComponent { title = 'Tour of heroes...
用 async/await 来处理异步昨天看了一篇vue的教程,作者用as...