ES6 Map提供keys()、values()、entries()三种原生迭代器方法,分别按插入顺序遍历键名、键值和键值对;keys()和values()返回独立迭代器,entries()为默认迭代器且支持解构赋值。

ES6 Map 提供了三种原生迭代器方法,分别对应遍历键名、键值和键值对,用法清晰且顺序严格按插入顺序执行。
遍历所有键名(keys)
调用 keys() 方法返回一个键名迭代器,配合 for...of 即可逐个访问:
-
const keys = map.keys();返回的是Map Iterator对象 - 直接在
for...of中使用:for (const key of map.keys()) { console.log(key); } - 支持转为数组:
[...map.keys()],适合需要索引或链式操作的场景
遍历所有键值(values)
values() 方法返回值的迭代器,行为与 keys() 类似,但只产出值:
for (const value of map.values()) { console.log(value); }- 注意:Set 的
values()和keys()行为一致,但 Map 中二者完全独立 - 也可展开为数组:
[...map.values()],便于后续 filter、map 等操作
遍历所有键值对(entries)
entries() 是默认迭代器,返回 [key, value] 数组形式的迭代器,最常用:
for (const [key, value] of map.entries()) { console.log(key, value); }- 省略
.entries()也能工作:for (const [key, value] of map) { ... }效果相同 - 配合解构赋值非常自然,适合需要同时处理键和值的逻辑
不复杂但容易忽略


















