JS集合操作备忘

 1 const arrA = [1,2,3];    //数组A
 2 const arrB = [2,3,4];    //数组B
 3 let result = undefined;  //结果
 4 
 5 //ES6方式
 6 let setA = new Set(arrA);
 7 let setB = new Set(arrB);
 8 
 9 //一、交集(A有,B也有)
10 result = arrA.filter(o=>setB.has(o));
11 console.log('ES6交集:'+result);
12 
13 //二、差集(A有,B没有)
14 result = arrA.filter(o=>!setB.has(o));
15 console.log('ES6差集:'+result);
16 
17 //三、并集(A有或B有)
18 result = Array.from(new Set([...arrA, ...arrB]));
19 console.log('ES6并集:'+result);
20 
21 
22 //lodash方式
23 //一、交集(A有,B也有)
24 result = _.intersection(arrA,arrB);
25 console.log('lodash交集:'+result);
26 
27 //二、差集(A有,B没有)
28 result = _.difference(arrA,arrB);
29 console.log('lodash差集:'+result);
30 
31 //三、并集(A有或B有)
32 result = _.union(arrA,arrB);
33 console.log('lodash并集:'+result);


执行结果:

> ES6交集:2,3
> ES6差集:1
> ES6并集:1,2,3,4
> lodash交集:2,3
> lodash差集:1
> lodash并集:1,2,3,4



原文地址:https://www.cnblogs.com/hollen/p/7268032.html