用展开运算符 [...set] 是最简洁的 Set 转数组方法,自动去重并保持插入顺序;相比 Array.from() 更轻量直观,支持组合操作,但需确保 set 为有效实例且注意浏览器兼容性。

直接用展开运算符 ... 包裹 Set 实例,就能一键转成数组,这是最简洁、最常用的方法。
基本写法:[...set]
Set 是可迭代对象,展开运算符能直接消费它:
const mySet = new Set([1, 2, 3, 2, 1]);<br>const arr = [...mySet];<br>console.log(arr); // [1, 2, 3]
自动去重 + 保持插入顺序,结果是标准数组,可调用 map、filter 等方法。
和 Array.from() 的区别
两者都能转换,但展开运算符更轻量直观:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
立即学习“Java免费学习笔记(深入)”;
-
[...mySet]语法短,语义明确,适合简单转换 -
Array.from(mySet)功能更强(支持映射回调),但多一个函数调用开销 - 性能上差异极小,日常开发选展开运算符即可
配合其他操作一起用
展开运算符支持组合使用,比如清空后转数组、拼接、解构:
- 转数组并加新元素:
[...mySet, 4, 5] - 与另一个数组合并:
[...mySet, ...otherArr] - 解构取前几项:
const [first, second] = [...mySet];
注意点
确保目标是真正的 Set 实例;如果变量可能是 null、undefined 或非迭代对象,需先校验:
- 安全写法:
mySet && mySet instanceof Set ? [...mySet] : [] - 不支持旧浏览器(IE 全系),如需兼容请用
Array.from()或 Babel 转译

















