在 javascript 中,从迭代器创建数组

in javascript, create Array from an iterator

给定一个 iterator,创建 Array 的最佳方法是什么?

例如,

let map = new Map();
map.set( 'key1', 'data' );
map.set( 'key2', 'more data' );
...
// now, wish to have an array of keys
let arr = //??// map.keys()  //??//

我可以做一些像

这样蹩脚的事情
function iter2array( iter ) {
  let arr = new Array();
  for( let e in iter ) arr.push(e);
  return arr;
}

但必须有更好的方法。

Array.from(map.keys()) // ['key1', 'key2']

The Array.from() method creates a new Array instance from an array-like or iterable object.