迭代键
重要程度: 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