开发者社区> 问答> 正文

如何将Set转换为Array?

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

如果可以map在Set上调用和类似的函数,那应该没问题。但是您也不能那样做。

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

因此,问题是:是否存在任何方便的内置方法来创建具有给定Set值的Array?(元素的顺序并不重要)。

如果不存在这样的选择,那么也许有一个很好的惯用一线做这件事?喜欢,使用for...of还是类似?

展开
收起
保持可爱mmm 2020-01-14 14:59:33 737 0
1 条回答
写回答
取消 提交回答
  • 如果不存在这样的选择,那么也许有一个很好的惯用一线做这件事?喜欢,用于...或类似的东西?
    

    事实上,有几种方法的转换设置一个数组:

    使用 Array.from

    let array = Array.from(mySet);

    只需spreading将阵列中的列

    let array = [...mySet];

    以旧的方式迭代并推入新数组(Sets具有forEach)

    let array = []; mySet.forEach(v => array.push(v));

    以前,使用非标准且现已弃用的数组理解语法:

    let array = [v for (v of mySet)];

    问题来源于stack overflow

    2020-01-14 14:59:56
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载