ES6的Set转数组有三种主流方式:扩展运算符(最常用,需现代环境)、Array.from()(兼容性好,支持映射处理)、for...of循环(完全可控,兼容极老环境)。

ES6 的 Set 本身是类数组结构,但不是数组,不能直接调用 map、filter 等数组方法。要转成基础的一维数组,核心思路是“利用 Set 的可迭代性”,主流方式有三种,都简洁可靠。
用扩展运算符(最常用)
这是最直观、写法最短的方式,适合现代环境(Chrome、Firefox、Edge、Node.js ≥ 8.0,不支持 IE):
const mySet = new Set([1, 2, 3, 2]);const arr = [...mySet]; // → [1, 2, 3]
注意:展开后顺序与插入顺序一致,且自动去重;若 Set 中含对象或数组,它们仍按引用判断唯一性(即两个 {} 不会被去重)。
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
用 Array.from()(兼容性更好)
支持更广(包括部分旧版 Safari 和 IE11),且可配合映射函数做转换:
const arr = Array.from(mySet); // → [1, 2, 3]- 带处理逻辑示例:
Array.from(mySet, x => x * 2)直接生成翻倍后的数组
用 for...of 循环手动推入(完全可控)
适合需要精细控制、或需兼容极老运行时的场景:
const arr = [];for (const item of mySet) arr.push(item);- 也可用
forEach:mySet.forEach(item => arr.push(item));
三种方式结果都是标准一维数组,后续可自由使用 push、map、find 等全部数组方法。选哪种主要看项目兼容要求和编码习惯。

















