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

 

posted @ 2017-08-24 17:26  gugege  阅读(2106)  评论(0编辑  收藏  举报