tilbage til lektionen

Itererbare nøgler

vigtighed: 5

Vi vil gerne have et array af map.keys() i en variabel og derefter anvende array-specifikke metoder på det, f.eks. .push.

Men det virker ikke:

let map = new Map();

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

let keys = map.keys();

// Fejl: keys.push er ikke en funktion
keys.push("more");

Hvorfor? Hvordan kan vi rette koden, så keys.push virker?

Det er fordi map.keys() returnerer en iterable, men ikke et array.

Vi kan konvertere det til et array ved hjælp af Array.from:

let map = new Map();

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

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

keys.push("more");

alert(keys); // name, more