レッスンに戻る

反復可能なキー

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