似乎没有一种简单而优雅的方法可以将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
转换为数组的好方法吗?
答案 0 :(得分:10)
一些方法:
[...set];
[...set.keys()];
[...set.values()];
Array.from(set);
Array.from(set.keys());
Array.from(set.values());
答案 1 :(得分:2)
您可以使用Array.from()方法返回数组中的数组,例如像Set
var set = new Set();
set.add("Hello");
set.add("There");
set.add({});
var setConvertedToArray = Array.from(set);
document.body.innerHTML = setConvertedToArray instanceof Array;