如何将Map键转换为数组?

2022-08-29 23:18:13

假设我有以下地图:

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);

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


答案 1

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

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

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

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

答案 2

可以使用展开运算符在数组中转换 Map.keys() 迭代器。

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