回到课程

迭代键

重要程度: 5

我们期望使用 map.keys() 得到一个数组,然后使用例如 .push 等特定的方法对其进行处理。

但是运行不了:

let map = new Map();

map.set("name", "John");

let keys = map.keys();

// Error: keys.push is not a function
keys.push("more");

为什么?我们应该如何修改代码让 keys.push 工作?

这是因为 map.keys() 返回的是可迭代对象而非数组。

我们可以使用方法 Array.from 来将它转换为数组:

let map = new Map();

map.set("name", "John");

let keys = Array.from(map.keys());

keys.push("more");

alert(keys); // name, more