JavaScript中Map对象可用for...of循环直接遍历键值对,因默认迭代器等同entries(),返回按插入顺序排列的[key, value]数组,支持解构赋值且保留原始类型作为key。

JavaScript 中的 Map 对象支持用 for...of 循环配合 entries() 方法遍历键值对,这是最直接、语义最清晰的方式之一。
entries() 返回可迭代的键值对数组
map.entries() 返回一个迭代器,每次迭代产出一个长度为 2 的数组 [key, value]。这个迭代器天然兼容 for...of。
- 不需要手动调用
next(),for...of自动处理迭代过程 - 返回的是原生键值对,保留原始类型(比如对象、函数、NaN 都可作 key)
- 遍历顺序与插入顺序一致(这是
Map的核心特性)
基础写法:解构赋值 + for...of
推荐使用数组解构,让代码简洁易读:
const myMap = new Map([
['name', 'Alice'],
['age', 30],
[true, 'boolean key']
]);
for (const [key, value] of myMap.entries()) {
console.log(key, '→', value);
}
// 输出:
// name → Alice
// age → 30
// true → boolean key
entries() 可省略,Map 默认迭代器就是 entries
Map 的默认迭代行为等同于 entries(),所以可以简写为:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
for (const [key, value] of myMap) {
// 和上面完全等价
}
这种写法更常见,也更符合直觉——毕竟你通常就是想遍历所有键值对。
如果只想遍历 key 或 value,用 keys() / values()
虽然问题聚焦在 entries(),但顺带提一下其他常用方式:
-
for (const key of myMap.keys())—— 只遍历键 -
for (const value of myMap.values())—— 只遍历值 - 三者都返回迭代器,都支持
for...of,且顺序均与插入一致

















