JavaScript中可用扩展运算符...将Map直接转为二维数组,因Map默认迭代器为entries(),故[...myMap]等价于[...myMap.entries()];也可用[...myMap.keys()]或[...myMap.values()]分别获取键或值的一维数组。

JavaScript 中可以用扩展运算符 ... 配合 Map.prototype.entries() 将 Map 快速转为二维数组(即由键值对数组组成的数组)。
直接用扩展运算符展开 entries()
entries() 方法返回一个迭代器,遍历 Map 中每个键值对,格式为 [key, value]。扩展运算符能将这个迭代器展开成数组元素:
const myMap = new Map([['a', 1], ['b', 2], ['c', 3]]); const arr = [...myMap.entries()]; console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
entries() 是默认迭代方法,可省略
Map 对象的默认可迭代接口就是 entries(),所以直接对 Map 使用扩展运算符效果相同:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
const myMap = new Map([['x', 'hello'], ['y', 'world']]); const arr = [...myMap]; console.log(arr); // [['x', 'hello'], ['y', 'world']]
其他常用转换方式(对比参考)
如果只需要键或值的一维数组,也可用类似写法:
立即学习“Java免费学习笔记(深入)”;
-
[...myMap.keys()]→ 键的数组(如['a', 'b', 'c']) -
[...myMap.values()]→ 值的数组(如[1, 2, 3])
注意点
确保 Map 实例有效,空 Map 展开后得到空数组 [];扩展运算符要求目标是可迭代对象,而 Map 天然支持,无需额外处理。

















