什么相当于ES6 Map的Array.map?

时间:2015-08-28 05:41:16

标签: javascript ecmascript-6

所以我可以在数组上调用map()来迭代它并返回另一个数组,如下所示:

[1,2,3].map( (value, index) => value * index )

如果我想在Map object上做同样的事情怎么办?

var myMap = new Map();
myMap.set(0, 1);
myMap.set(1, 2);
myMap.set(2, 3);

这不是有效的:

myMap.map( (value, index) => value * index )

有一个forEach,但那不一样。

是否有一种快速的简写方法可以从Map生成数组,就像数组上的map()一样?

- 希望这句话有意义。

1 个答案:

答案 0 :(得分:10)

如果结果必须是数组,那么您可以使用Array.from()Map.prototype.entries()

Array.from(myMap.entries()).map(([key, value]) => key * value)

或者你可以spread迭代器:

[...myMap.entries()].map(...)