为了“映射”一个Map对象,您必须先将其解构为一个数组数组。在我看来,这是倒退的。

有人可以向我解释背后的设计原理吗?我了解其他语言(例如Scala)也具有Maps的map方法,因此我试图了解为什么Javascript中不提供它们。

这种语法看起来是如此不必要和复杂:

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

难道不是这样吗?
let mappedMap = originalMap.map((k, v) => [k * 2, '_' + v]);

最佳答案

ES6上的Map当前表示为具有键/值系统的可迭代项。并且数组映射函数返回一个新数组。我不确定是否可以通过这种方式返回新版本。我会使用forEach for Maps并从那里构建新的。如果可以的话,可以构建具有相同功能的功能,我也绝对建议您查看immutable.js

07-26 06:48