我正在一个项目中,我经常不得不转换ES6映射中的每个值:

const positiveMap = new Map(
  [
    ['hello', 1],
    ['world', 2]
  ]
);

const negativeMap = new Map<string, number>();
for (const key of positiveMap.keys()) {
  negativeMap.set(key, positiveMap.get(key) * -1);
}

只想知道是否有更好的方法可以做到这一点?理想情况下,像Array.map()这样的一个衬纸。

加分(不是真的),如果它是在 typescript 中编译的!

最佳答案

您可以使用Array.from 2nd参数,即 map 样式的回调:

const positiveMap = new Map([['hello', 1],['world', 2]]),
    negativeMap = new Map(Array.from(positiveMap, ([k, v]) => [k, -v]));

console.log([...negativeMap]);

09-18 08:17