[Javascript] 如何将设置转换为数组?



Answers

通过安格斯克罗尔https://speakerdeck.com/anguscroll/es6-uncensored

事实证明,我们可以使用spread运算符:

var myArr = [...mySet];

或者,也可以使用Array.from

var myArr = Array.from(mySet);
Question

Set似乎是一种创建具有保证唯一元素的Arrays的好方法,但它并没有公开任何获取属性的好方法,除了generator [Set] .values,这是以mySet.values.next()一种尴尬方式调用的。 。

如果你可以在集合上调用map和类似的函数,这将是确定的。 但是你也做不到。

我试过Array.from ,但似乎只将类似数组(NodeList和TypedArrays?)的对象转换为Array。 另一个尝试: Object.keys不适用于集合,并且Set.prototype没有类似的静态方法。

所以,问题: 是否有任何方便的内置方法来创建具有给定Set值的数组? (元素的顺序并不重要)。

如果没有这样的选择,那么也许有一个很好的惯用的单线程来做到这一点? 喜欢, for...of ,还是类似的?




使用传播运算符来获得您想要的结果

var arrayFromSet = [...set];



Links