如何在Chrome中将Set转换为数组?

Cec*_*lia 7 javascript google-chrome

如何将Set转换为Array?给出了将Set转换为数组的三个答案,其中没有一个目前在Chrome浏览器中有效.

假设我有一个简单的Set

var set_var = new Set(['a', 'b', 'c']);
Run Code Online (Sandbox Code Playgroud)

我可以遍历我的变量并将元素添加到空数组中

var array_var = [];
set_var.forEach(function(element){array_var.push(element)});
Run Code Online (Sandbox Code Playgroud)

但是有没有其他方法可以提供更广泛的浏览器支持?

Leo*_*Leo 1

为什么不尝试一下设置迭代器呢?

function setToArray(set) {
  var it = set.values(),
      ar = [],
      ele = it.next();

  while(!ele.done) {
    ar.push(ele.value);
    ele = it.next();
  }

  return ar;
}

setToArray(new Set(['a', 'b', false, 0, 'c'])); // ["a", "b", false, 0, "c"]
Run Code Online (Sandbox Code Playgroud)