首页 > 解决方案 > 如何在循环(js)中从 Map(obj)获取键和值?

问题描述

我尝试在循环中从映射中获取键和值,在第二次运行中,键和值未定义。有任何想法吗?

let map = new Map();
map.set('{{NAME}}', 'Name');
map.set('{{CLASS}}', 'Sorc');

let keyIterator = map.keys();
let valIterator = map.values();
let counter = map.size;

for (let i = 0; i < counter; i++){
  console.log('Key: ' + keyIterator.next().value);
  console.log('Val: ' + valIterator.next().value);
}

输出:

密钥:{{NAME}}

瓦尔:姓名

键:未定义

值:未定义

我希望它不是重复的,但我找不到我的问题的明确答案。

标签: javascript

解决方案


您可以使用for ... of语句迭代 map 的条目。

let map = new Map();
map.set('{{NAME}}', 'Name');
map.set('{{CLASS}}', 'Sorc');


for (let [k, v] of map) {
    console.log('Key: ' + k);
    console.log('Val: ' + v);
}


推荐阅读