Set 似乎是创建具有保证唯一元素的数组的好方法,但它没有公开任何获取属性的好方法,除了生成器 [Set].values,它以一种尴尬的方式调用 mySet.values.next()
.
如果您可以在 Sets 上调用 map
和类似函数,那就没问题了。但你也不能那样做。
我试过 Array.from
,但似乎只将类似数组的(NodeList 和 TypedArrays ?)对象转换为 Array。另一种尝试: Object.keys
不适用于 Sets,Set.prototype 没有类似的静态方法。
所以,问题是: 是否有任何方便的内置方法来创建具有给定 Set 值的 Array ? (元素的顺序并不重要)。
如果不存在这样的选择,那么也许有一个很好的惯用单线来做到这一点?喜欢,使用 for...of
还是类似的?
原文由 c69 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上,有几种方法可以将 Set 转换为 Array :
Array.from
:_注意:TypeScript 更安全。
spreading
在一个数组中:_注意:使用 TypeScript 编译时,传播 Set 会出现问题(请参阅 问题 #8856 )。改用上面的
Array.from
会更安全。forEach
):