- 并集、交集和差集
// 并集:先合并为一个数组,再转换为set。
function unionSet(a, b) {
return new Set([...a, ...b]);
}
// 交集:过滤两者皆有的元素
function intersectSet(a, b) {
return new Set([...a].filter(x => b.has(x)));
}
// 差集:a-b。(b-a相反)
function differenceSet(a, b) {
return new Set([...a].filter(x => ! b.has(x)));
}
测试:
var a = new Set([1,2,3]);
var b = new Set([2,3,4]);
console.log(unionSet(a, b)); // Set(4) {1, 2, 3, 4}
console.log(intersectSet(a, b)); // Set(2) {2, 3}
console.log(differenceSet(a, b)); // Set(1) {1}