javascript – 在ES6 Map上使用for..of循环

前端之家收集整理的这篇文章主要介绍了javascript – 在ES6 Map上使用for..of循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读在地图上使用for … of循环的 this示例,我对这种语法有点困惑:
var myMap = new Map();
myMap.set(0,"zero");
myMap.set(1,"one");

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

具体来说,我不明白正在发生的数组解构.我知道你可以使用数组解构来做像[one,two] = [1,2];这样的事情,但这个例子中发生了什么? myMap不是数组,为什么这会得到正确的值?

我的另一个问题是为什么订单键,解构中的值,但当你做一个forEach()时,顺序是值,键,就像这里:

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相关文章