陕西队西北狼

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>

 

posted @ 2021-05-14 13:35  PS-Jerry  阅读(607)  评论(0编辑  收藏  举报