Procházení pole objektů
Pole objektů se obvykle zpracovává cyklem. V cyklu for...of je v proměnné cyklu při každém průchodu jeden celý objekt, takže jeho vlastnosti čtete tečkou:
const zvirata = [
{ jmeno: "Rex", druh: "pes", vek: 3 },
{ jmeno: "Micka", druh: "kočka", vek: 2 },
{ jmeno: "Kiwi", druh: "papoušek", vek: 4 }
];
for (const zvire of zvirata) {
console.log(`${zvire.jmeno} je ${zvire.druh}.`);
}Rex je pes.
Micka je kočka.
Kiwi je papoušek.Při prvním průchodu je v proměnné zvire objekt Rexe, při druhém Micky, při třetím Kiwiho. Je dobrým zvykem pojmenovat pole v množném čísle a proměnnou cyklu v jednotném (zvirata, zvire). Kód se pak čte skoro jako věta: pro každé zvíře ze zvířat.
Vzory z lekce o cyklech fungují i tady. Když chcete sečíst věk všech zvířat, přičtěte při každém průchodu jednu vlastnost:
let celkovyVek = 0;
for (const zvire of zvirata) {
celkovyVek += zvire.vek;
}
console.log("Celkový věk:", celkovyVek);Celkový věk: 9A s příkazem if uvnitř cyklu můžete vybrat jen některé objekty, třeba zvířata starší než 2 roky:
for (const zvire of zvirata) {
if (zvire.vek > 2) {
console.log(zvire.jmeno);
}
}Rex
KiwiTypická chyba je zapomenout na vlastnost: celkovyVek += zvire; přičte celý objekt místo jeho věku. Výsledkem pak není číslo, ale podivný text jako 0[object Object][object Object][object Object].
Jak psát:
Pokyny
Napište cyklus for...of, který projde kosik a u každé položky vypíše její název a cenu oddělené dvojtečkou, třeba Granule pro psa: 250.
Pod cyklem sečtěte ceny všech položek a výsledek vypište jako Celkem: 535.
Nakonec vypište názvy položek, které stojí méně než 100, každý na samostatný řádek.
Začněte programovat zdarma
6/9