当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在ES6Map上使用for..of循环》经验,为你挑选了1个好方法。

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

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);
});

Ry-.. 24

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的参数顺序可能与for一致Array#forEach,它使用参数调用函数(item, index); 反过来,它可能会这样做,因为你并不总是需要索引.



1> Ry-..:
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的参数顺序可能与for一致Array#forEach,它使用参数调用函数(item, index); 反过来,它可能会这样做,因为你并不总是需要索引.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有