【问题标题】:Convert a Javascript `Set` to an array [duplicate]将Javascript`Set`转换为数组[重复]
【发布时间】:2016-04-15 07:06:53
【问题描述】:

似乎没有一种简单而优雅的方式将 Javascript Set 转换为数组。

var set = new Set();
set.add("Hello");
set.add("There");
set.add(complexObject);

var setConvertedToArray = convertSetToArray(set);

console.log( setConvertedToArray ); // ["Hello", "There", ►Object ]

map 感觉不错,但Set 原型只有forEach

呸:

function convertSetToArray(set) {
  var a = [];
  set.forEach( x => a.push(x) ); 
  return a;
}

有人知道将Set 转换为数组的好方法吗?

【问题讨论】:

标签: javascript arrays set ecmascript-6


【解决方案1】:

一些方法:

[...set];
[...set.keys()];
[...set.values()];
Array.from(set);
Array.from(set.keys());
Array.from(set.values());

【讨论】:

    【解决方案2】:

    您可以使用 Array.from() 方法从 Array 中返回一个数组,类似于 Set 等对象

    var set = new Set();
    set.add("Hello");
    set.add("There");
    set.add({});
    
    var setConvertedToArray = Array.from(set);
    
    document.body.innerHTML = setConvertedToArray instanceof Array;

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 2016-08-15
      • 2015-08-04
      • 2014-05-20
      • 2019-04-10
      相关资源
      最近更新 更多