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

首先回顾一下并集、交集、差集的定义:
(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}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容