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ší