我正在一个项目中,我经常不得不转换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]);