一.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>