Pole objektů

V obchodě se zvířaty není jen jedno zvíře. Když máte hodně objektů stejného druhu, dejte je do pole. Pole objektů patří k tomu nejběžnějšímu v programování: takhle se ukládají třeba produkty v e-shopu, zprávy v chatu nebo knihy v knihovně.

const zvirata = [
    { jmeno: "Rex", druh: "pes", vek: 3 },
    { jmeno: "Micka", druh: "kočka", vek: 2 },
    { jmeno: "Kiwi", druh: "papoušek", vek: 4 }
];

console.log(zvirata);
[{ jmeno: "Rex", druh: "pes", vek: 3 }, { jmeno: "Micka", druh: "kočka", vek: 2 }, { jmeno: "Kiwi", druh: "papoušek", vek: 4 }]

Každý prvek pole je jeden objekt a objekty jsou oddělené čárkami jako jakékoli jiné prvky. K vlastnosti jednoho zvířete se dostanete tak, že nejdřív vyberete prvek podle indexu a pak vlastnost pomocí tečky:

console.log(zvirata[1]);
console.log(zvirata[1].jmeno);
{ jmeno: "Micka", druh: "kočka", vek: 2 }
Micka

zvirata[1].jmeno čtěte zleva doprava: z pole zvirata vezměte prvek na indexu 1 (objekt Micky) a z něj vlastnost jmeno.

Všechno, co znáte o polích a objektech, platí dál. zvirata.length je počet zvířat, push() přidá nové zvíře na konec a vlastnost jednoho zvířete můžete změnit:

zvirata.push({ jmeno: "Ušák", druh: "králík", vek: 1 });
zvirata[0].vek = 4;

console.log(zvirata.length);
console.log(zvirata[0]);
4
{ jmeno: "Rex", druh: "pes", vek: 4 }

Typické chyby:

  • zvirata.jmeno dá undefined. Samotné pole žádné jméno nemá, mají ho jen zvířata v něm. Nejdřív vyberte zvíře: zvirata[0].jmeno.
  • Index, který v poli není, třeba zvirata[10].jmeno. zvirata[10] je undefined a undefined žádné vlastnosti nemá, takže program skončí chybou TypeError: Cannot read properties of undefined (reading 'jmeno') (nelze číst vlastnosti hodnoty undefined).

Pokyny

Vypište druh třetího zvířete, Kiwiho. V konzoli by se mělo objevit papoušek.

Do obchodu přibyl králík. Přidejte ho pomocí push() na konec pole: { jmeno: "Ušák", druh: "králík", vek: 1 }.

Vypište celé pole zvirata. Na jeho konci by teď měl být Ušák.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

5/9