gpt4 book ai didi

javascript - 在 ES6 map 上使用 for..of 循环

转载 作者:可可西里 更新时间:2023-11-01 02:33:08 25 4
gpt4 key购买 nike

我正在阅读 this在 map 上使用 for.. of 循环的示例,我对这种语法有点困惑:

var myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");

for (var [key, value] of myMap) {
console.log(key + " = " + value);
}

具体来说,我不理解正在发生的数组解构。我知道您可以使用数组解构来执行类似 let [one, two] = [1, 2]; 的操作,但是这个示例中发生了什么? myMap 不是数组,那么为什么它会得到正确的值?

我的另一个问题是为什么解构中的顺序是 key, value,但是当你执行 forEach() 时顺序是 value, key ,就像这里:

myMap.forEach((value, key) => {
console.log(key + " = " + value);
});

最佳答案

for (var [key, value] of myMap) {
console.log(key + " = " + value);
}

就像

for (let pair of myMap) {
var [key, value] = pair;
console.log(key + " = " + value);
}

所以不是 myMap 必须是数组才能使解构起作用;相反,它的每个元素在迭代时都必须是一个数组,并且迭代一个映射确实会产生数组(键/值对)。

Map#forEach 的参数顺序可能是为了与 Array#forEach 保持一致,它调用带有参数的函数 (item, index);反过来,它可能会这样做,因为您并不总是需要索引。

关于javascript - 在 ES6 map 上使用 for..of 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390318/

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