所以我可以在数组上调用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()
一样?
- 希望这句话有意义。
答案 0 :(得分:10)
如果结果必须是数组,那么您可以使用Array.from()
和Map.prototype.entries()
:
Array.from(myMap.entries()).map(([key, value]) => key * value)
或者你可以spread迭代器:
[...myMap.entries()].map(...)