gpt4 book ai didi

javascript - 在 javascript 中映射 Map 的语义正确方法

转载 作者:行者123 更新时间:2023-11-30 21:01:17 26 4
gpt4 key购买 nike

我有一个对象的 JS Map,我想在不更改 Map 的情况下对其进行迭代(仅使用副作用)。
执行此操作在语义上正确的方法是什么?
我想到的解决方案:

myMap.forEach((value, key) => {
// do something
});

(看起来不错,但在语义上不正确恕我直言,因为应该使用 map 进行不更改迭代数据结构的操作(?))

[... myMap].map(([key, value]) => {
// do something
});

(不如 forEach 可读,但在语义上更正确(?))

for ([key, value] of myMap){
// do something
}

(可能是最好的解决方案,可读性好,但语义问题与 forEach 相同)

在此先感谢您的帮助:)

最佳答案

mozilla docs 中找到您可以使用forEach 迭代map (const map = new Map())。 mapfilterreduce 仅适用于数组。在这种情况下,这不是语义问题。

当然,您也可以选择 for...of 循环,但这两者做不同的事情。我不认为它们可以互换。

const map = new Map([
[ 1, 'a' ],
[ 2, 'b' ],
[ 3, 'c' ],
]);

map.forEach((element, i) => console.log(element, i));
// a 1
// b 2
// c 3

for (const a of map) {
console.log(a);
}

// [ 1, 'a' ]
// [ 2, 'b' ]
// [ 3, 'c' ]

关于javascript - 在 javascript 中映射 Map 的语义正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47123808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com