如何将 Map 键转换为数组?

新手上路,请多包涵

假设我有以下地图:

let myMap = new Map().set('a', 1).set('b', 2);

我想根据上面的得到 ['a', 'b'] 。我目前的解决方案似乎如此漫长而可怕。

let myMap = new Map().set('a', 1).set('b', 2);
let keys = [];
for (let key of myMap)
  keys.push(key);
console.log(keys);

一定有更好的方法,不是吗?

原文由 Lilleman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

Map.keys() 返回一个 MapIterator 对象,该对象可以使用 Array.from 转换为 Array

 let keys = Array.from( myMap.keys() );
 // ["a", "b"]

编辑:您还可以使用 扩展语法 将可迭代对象转换为数组

let keys =[ ...myMap.keys() ];
 // ["a", "b"]

原文由 pawel 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用扩展运算符将 Map.keys() 迭代器转换为数组。

 let myMap = new Map().set('a', 1).set('b', 2).set(983, true)
let keys = [...myMap.keys()]
console.log(keys)

原文由 Fernando Carvajal 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题