js中的iterator坑
我想遍历map,用iterator
const map = new Map();
//map.set(1,1);
const iterator = map.keys();
console.log(iterator);
let k;
do {
k = iterator.next();
console.log(k.value);
} while(k.done);
当map有键值对时是好的,但当为空时,死循环
原因:
map为空时,next()返回值k,k.value=undefined,但k.done=true 这个是浏览器的bug?
可以换一种遍历方式:
for(let item of map) {
console.log(item);
}