为什么Map没有map方法?

Thi*_*man 5 javascript ecmascript-6

为了"映射"一个Map对象,你必须首先将它解构为一个数组数组.这似乎是我的倒退.

有人可以向我解释一下这背后的设计理由是什么吗?我知道像Scala这样的其他语言确实有地图的地图方法,所以我试图理解为什么它们在Javascript中不可用.

这种语法似乎是不必要的复杂和冗长:

let mappedMap = new Map( 
  [...originalMap]
  .map(([k, v]) => [k * 2, '_' + v])
);
Run Code Online (Sandbox Code Playgroud)

难道不是这样的吗?

let mappedMap = originalMap.map((k, v) => [k * 2, '_' + v]);
Run Code Online (Sandbox Code Playgroud)

小智 0

ES6 上的 Map 目前表示为具有键/值系统的可迭代对象。数组映射函数返回一个新数组。我不确定是否可以通过这种方式返回新版本。我会使用 forEach 来创建地图,并从那里构建新的地图。如果有的话,如果你可以构建一个具有相同功能的函数,我也绝对建议你研究一下 immutable.js