zpět k lekci

Iterovatelné klíče

důležitost: 5

Chtěli bychom uložit pole klíčů mapy mapa.keys() do proměnné a pak na ní volat metody specifické pro pole, např. .push.

Tohle však nefunguje:

let mapa = new Map();

mapa.set("jméno", "Jan");

let klíče = mapa.keys();

// Chyba: klíče.push není funkce
klíče.push("další");

Proč? Jak můžeme opravit kód, aby klíče.push fungovalo?

Je to proto, že mapa.keys() vrací iterovatelný objekt, ale ne pole.

Můžeme jej převést na pole pomocí Array.from:

let mapa = new Map();

mapa.set("jméno", "Jan");

let klíče = Array.from(mapa.keys());

klíče.push("další");

alert(klíče); // jméno,další