在JavaScript中,从一个迭代器创建数组

3

给定一个 iterator,最好的方法是如何创建一个 Array

例如:

let map = new Map();
map.set( 'key1', 'data' );
map.set( 'key2', 'more data' );
...
// 现在,希望有一个键的数组
let arr = //??// map.keys()  //??//

我可以做一些像这样的愚蠢事情:

function iter2array( iter ) {
  let arr = new Array();
  for( let e in iter ) arr.push(e);
  return arr;
}

但肯定有更好的方法。


1
请记住,迭代器可以是无限的。 - jfriend00
1个回答

5
Array.from(map.keys()) // ['key1', 'key2']
Array.from() 方法可以从一个类似数组或可迭代对象中创建一个新的数组实例。

1
工作得很好。火狐浏览器支持,但在谷歌浏览器或Node.js中尚未支持。还有其他想法吗? - cc young

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接