返回課程

可迭代鍵

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