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);
}
原文地址:https://www.cnblogs.com/gugege/p/7424167.html