我尝试循环从映射中获取键和值,在第二次运行中,键和值未定义。有什么想法吗?
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}}
Val:姓名
键:未定义
Val:未定义
我希望它不会重复,但是我找不到解决我问题的明确答案。
答案 0 :(得分:1)
您可以使用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);
}
答案 1 :(得分:1)
简单点,只需使用Map对象中的forEach
方法即可。
let map = new Map();
map.set('{{NAME}}', 'Name');
map.set('{{CLASS}}', 'Sorc');
map.forEach((val,key) => {
console.log(`Key: ${key}`)
console.log(`Val: ${val}`)
})