JavaScript遍历Map键值对最推荐for...of配合entries(),可简写为for...of myMap;也可用forEach(参数顺序为value、key、map);keys()/values()分别遍历键或值;Array.from()或展开运算符可转为数组以便使用map、filter等方法。

JavaScript 中遍历 Map 的键值对,最常用且推荐的方式是使用 for...of 循环配合 Map.prototype.entries(),也可以用 forEach() 或分别遍历键和值。
用 for...of 遍历 entries()(推荐)
entries() 返回一个迭代器,每次产出一个 [key, value] 数组,适合解构赋值:
const myMap = new Map([['a', 1], ['b', 2], ['c', 3]]);
for (const [key, value] of myMap.entries()) {
console.log(key, value); // 'a' 1, 'b' 2, 'c' 3
}
注意:myMap.entries() 可简写为 myMap,因为 Map 默认迭代器就是 entries():
for (const [key, value] of myMap) {
console.log(key, value);
}
用 forEach 方法遍历
forEach() 接收一个回调函数,参数依次是 value、key、map 对象本身:
立即学习“Java免费学习笔记(深入)”;
myMap.forEach((value, key, map) => {
console.log(key, value); // 参数顺序固定:value 在前,key 在后
});
只遍历键或只遍历值
如果只需要键或值,可用 keys() 或 values():
-
myMap.keys()→ 迭代所有键 -
myMap.values()→ 迭代所有值
for (const key of myMap.keys()) {
console.log('Key:', key);
}
for (const value of myMap.values()) {
console.log('Value:', value);
}
转成数组后遍历(适合需要数组方法时)
用 Array.from() 或展开运算符 [...] 转为二维数组:
const arr = Array.from(myMap); // [['a', 1], ['b', 2], ['c', 3]] // 或 const arr2 = [...myMap]; arr.forEach(([key, value]) => console.log(key, value));
这样就能用 map、filter 等数组方法处理键值对了。


















