javascript中set无内置并集方法,常用扩展运算符结合new set实现:const union = new set([...seta, ...setb]);也可用for...of遍历手动添加;还可封装支持多set的union函数,且set自动去重。

JavaScript 中 Set 本身没有内置的并集方法,但可以通过扩展运算符(...)结合 new Set() 快速实现两个 Set 的并集。
用扩展运算符合并两个 Set
这是最常用、最简洁的方式:把两个 Set 转成数组再构造新 Set,自动去重。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
const setA = new Set([1, 2, 3]);
const setB = new Set([3, 4, 5]);
const union = new Set([...setA, ...setB]);
console.log(union); // Set { 1, 2, 3, 4, 5 }
用 for...of 遍历手动添加(适合大集合或需兼容旧环境)
当集合很大,或需要更精细控制(比如跳过某些值),可以用循环方式逐个添加。
const setA = new Set([1, 2, 3]);
const setB = new Set([3, 4, 5]);
const union = new Set(setA); // 先复制 setA
for (const item of setB) {
union.add(item);
}
console.log(union); // Set { 1, 2, 3, 4, 5 }
封装成可复用的并集函数
为提升代码复用性,可以写一个通用函数,支持任意多个 Set。
function union(...sets) {
return new Set(sets.flatMap(set => [...set]));
}
// 使用示例
const a = new Set([1, 2]);
const b = new Set([2, 3]);
const c = new Set([3, 4]);
console.log(union(a, b, c)); // Set { 1, 2, 3, 4 }
注意点
- Set 构造器会自动去重,所以重复元素只保留一份
- 扩展运算符要求 Set 可遍历(所有现代浏览器都支持)
- 如果 Set 里有对象或 NaN,要注意引用相等性:不同对象即使内容相同也被视为不同元素;而
NaN === NaN为 false,但 Set 中多个NaN仍会被去重(Set 内部使用 SameValueZero 算法)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










