最直接获取map键值对迭代器的方式是调用map.entries()方法,它返回默认迭代器,支持for-of遍历、解构语法及展开为数组,且按插入顺序懒执行。

JavaScript 中 Map 对象的迭代器获取键值对,最直接的方式是调用 map.entries() 方法,它返回一个可遍历的迭代器对象,每次迭代产出一个 [key, value] 数组。
entries() 是默认迭代器
Map.prototype.entries() 不仅是显式获取键值对迭代器的方法,它还是 Map 的默认迭代器。这意味着以下三种写法效果完全相同:
for (const entry of map.entries())-
for (const entry of map)(因为map[Symbol.iterator] === map.entries) -
for (const [key, value] of map)(解构语法自动从 entry 数组提取)
实际使用建议
日常开发中推荐用解构写法,语义清晰、代码简洁:
const map = new Map([['a', 1], ['b', 2]]);
for (const [key, value] of map) {
console.log(key, value); // 'a' 1, 然后 'b' 2
}
如果需要先转成数组再处理(比如用 filter 或 map),可展开为数组:
const entriesArray = [...map]; // 等价于 [...map.entries()]
和其他迭代器方法的区别
Map 还提供两个专用迭代器:
-
map.keys():只遍历键,返回key单值 -
map.values():只遍历值,返回value单值 -
map.entries():遍历键值对,返回[key, value]数组 —— 这才是你要的键值对迭代器
注意点
迭代器是“懒执行”的,不会立刻遍历全部元素;它按需产出,适合配合 break、return 或生成器使用。另外,迭代顺序严格遵循插入顺序,这是 Map 的核心特性之一。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











