ES6 新特性

ES6 Set数据结构

2022-05-06  本文已影响0人  生命里那束光

一、Set 集合

1. 概述:
  1. size 返回集合的元素个数;

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

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

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

  5. clear 清空集合,返回 undefined;

2. 基本使用:

代码实现:

<script>
    //声明一个 set
    let s = new Set();
    let s2 = new Set(['大事儿','小事儿','好事儿','坏事儿','小事儿']);

    console.log(s2.size); //元素个数
    s2.add('喜事儿'); //添加新的元素
    s2.delete('坏事儿'); //删除元素
    console.log(s2.has('糟心事')); //检测,返回值true或着false
    s2.clear();//清空
    console.log(s2);

    //遍历数据
    for(let v of s2){
        console.log(v);
    }
</script>

运行结果:

二、Set 集合实践

代码实现:

//集合方法的组合使用
<script>
    let arr = [1,2,3,4,5,4,3,2,1]; //声明数组1
    //1. 数组去重
    let result = [...new Set(arr)];
    console.log(result);
    //2. 交集
    let arr2 = [4,5,6,5,6]; //声明数组2
    //完整代码,交集操作的原理
    let result = [...new Set(arr)].filter(item => {  //arr数组去重
        let s2 = new Set(arr2);//arr数组去重 4 5 6
        if(s2.has(item)){  //通过arr数组元素和s2进行匹配
            return true;
        }else{
            return false;
        }
    });
    //简化后的代码
    let result = [...new Set(arr)].filter(item => new Set(arr2).has(item));
    console.log(result);

    //3. 并集
    let union = [...new Set([...arr, ...arr2])]; //扩展运算符连接两个数组
    console.log(union);

    //4. 差集(1和2的差集,1里面有,2里面没有)
    let diff = [...new Set(arr)].filter(item => !(new Set(arr2).has(item)));
    console.log(diff);

</script>

运行结果:

差集和补集的区别:

上一篇下一篇

猜你喜欢

热点阅读