返回课程

可迭代键

重要性: 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