利用Set实现数组的并集(Union)、交集(Intersect

2018-08-27  本文已影响0人  小龙虾Julian

首先回顾一下并集、交集、差集的定义:
(1)并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
(2)交集:以属于A且属于B的元素为元素的集合成为A与B的交(集)
(3)差集:以属于A而不属于B的元素为元素的集合成为A与B的差(集)

let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);

// 并集
let union = new Set([...a, ...b]);
console.log(union);// Set {1, 2, 3, 4}

// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
console.log(intersect);// Set {2, 3}

// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
console.log(difference);// Set {1}

let difference = new Set([...b].filter(x => !a.has(x)));
console.log(difference);// Set {4}
上一篇 下一篇

猜你喜欢

热点阅读