问:map.delete(key)之后的ES6 map.keys()

俞常爽*_*俞常爽 6 javascript ecmascript-6 es6-map

当我尝试这些代码时:

const map=new Map([['a', 1],['b', 2],['c', 3],['d', 4],['e', 5]]);
console.log(map.keys());
map.delete('a')
console.log(map.keys());
Run Code Online (Sandbox Code Playgroud)

chrome控制台将显示以下内容:

MapIterator {"a", "b", "c", "d", "e"}
MapIterator {"c", "d", "e"}
Run Code Online (Sandbox Code Playgroud)

"b"为什么不出现?

Shu*_*tri 1

这是浏览器兼容性问题,发生在map.keys(), map.values(), map.entries()

删除第一个键时会出现此问题chrome,但在safari.

此外,这些属性甚至在 中不起作用Mozilla,只是返回一个空的 Map 迭代器