zoukankan      html  css  js  c++  java
  • ES6 之 Set 和filter求数组交集、并集、差集

    一.Set 即ES6里一个不重复的数组,它可以接受一个数组作为参数,返回结果即可去处数组中重复的项。
    1.例如:
        let array1 = new Set([1,2,3,4,4,2]);
        console.log([...array1]);
      
    result:[1, 2, 3, 4]
    2.使用Set快速去重的方法
     
    let result = [...new Set([1,3,5,7,9,1,3])]

    result:[1,3,5,7,9]
    3.Set中的增删改查
    add(value):添加某个值,返回Set结构本身。
    delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
    has(value):返回一个布尔值,表示该值是否为Set的成员。
    clear():清除所有成员,没有返回值。
     
     
     
    二、filter 方法,filter方法是ES5中新增加的用于过滤数组的方法
     
    其使用方法如下
     
        let a = new Set([1, 2, 3]);
        //注意过滤是过滤前面那个前面那个数组,即被过滤数组
        //例如:过滤出大于 a数组里大于2的值
        let filerResult = [...a].filter((x)=>x >2 );
        console.log(filerResult);
    三、使用Set和filter求数组中的交集、并集、差集。
    <script type="text/javascript">
    
        let a = new Set([1, 2, 3]);
        let b = new Set([4, 3, 2]);
    
        //求交集,过滤出a里b里也有的
        let intersect = [...a].filter((ele) => b.has(ele));
        console.log([...intersect]);
    
        //求并集
        let union = new Set([...a, ...b]);
        console.log([...union]);
    
        //求差集 a对b的差集,过滤a数组中的元素,在b里没有的
        let difference = [...a].filter((ele) => !b.has(ele));
        console.log(difference);
    
        //求差集,b对a的差集
        let difference2 = [...b].filter((ele) => !a.has(ele));
        console.log(difference2);
    
        //注意过滤是过滤前面那个前面那个数组,即被过滤数组
        //例如:过滤出大于 a数组里大于2的值
        let filerResult = [...a].filter((x)=>x >2 );
        console.log(filerResult);
    
    
    </script>
  • 相关阅读:
    算法25-----位运算(2)-----案例
    算法24----重复子字符串
    算法23-------岛屿的最大面积 LeetCode 695
    算法22-----托普利茨矩阵leetcode766
    算法21----重塑矩阵 LeetCode566
    Python笔记25-----------创建二维列表【浅copy】和转置
    TensorFlow+实战Google深度学习框架学习笔记(7)-----队列与多线程
    TensorFlow+实战Google深度学习框架学习笔记(6)----神经网络经典损失函数
    Testing
    Spark简介
  • 原文地址:https://www.cnblogs.com/vpersie2008/p/7763575.html
Copyright © 2011-2022 走看看