将Javascript`Set`转换为数组[重复]

Posted

技术标签:

【中文标题】将Javascript`Set`转换为数组[重复]【英文标题】:Convert a Javascript `Set` to an array [duplicate] 【发布时间】: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 转换为数组的好方法吗?

【问题讨论】:

或者更好的How to convert Set to Array? 【参考方案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;

【讨论】:

以上是关于将Javascript`Set`转换为数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将二维 JavaScript 数组转换为一维数组 [重复]

将数组转换为“2元组”数组的Javascript函数[重复]

使用map方法将javascript对象数组转换为其他对象数组[重复]

我想用 JavaScript 将对象数组转换为对象 [重复]

Javascript数组转换为数组[重复]

javascript 这将删除重复,然后将对象转换为数组,以便以后加入它。