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 }
Mickazvirata[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.jmenodá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]jeundefinedaundefinedžádné vlastnosti nemá, takže program skončí chybouTypeError: Cannot read properties of undefined (reading 'jmeno')(nelze číst vlastnosti hodnoty undefined).
Jak psát:
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
5/9