Arrays aus Objekten
Eine Zoohandlung hat mehr als ein Tier. Wenn du viele Objekte derselben Art hast, packe sie in ein Array. Arrays aus Objekten gehören zu den häufigsten Dingen in der Programmierung: Produkte in einem Onlineshop, Nachrichten in einem Chat oder Bücher in einer Bibliothek werden so gespeichert.
const tiere = [
{ name: "Rex", art: "Hund", alter: 3 },
{ name: "Bella", art: "Katze", alter: 2 },
{ name: "Kiwi", art: "Papagei", alter: 4 }
];
console.log(tiere);[{ name: "Rex", art: "Hund", alter: 3 }, { name: "Bella", art: "Katze", alter: 2 }, { name: "Kiwi", art: "Papagei", alter: 4 }]Jedes Element des Arrays ist ein Objekt, und die Objekte werden wie alle anderen Elemente durch Kommas getrennt. Um an eine Eigenschaft eines Tiers zu kommen, wähle zuerst das Element über seinen Index und dann die Eigenschaft mit einem Punkt:
console.log(tiere[1]);
console.log(tiere[1].name);{ name: "Bella", art: "Katze", alter: 2 }
BellaLies tiere[1].name von links nach rechts: Aus tiere nimm das Element mit dem Index 1 (Bellas Objekt) und daraus die Eigenschaft name.
Alles, was du über Arrays und Objekte weißt, gilt weiterhin. tiere.length ist die Anzahl der Tiere, push() fügt am Ende ein neues Tier hinzu, und du kannst eine Eigenschaft eines Tiers ändern:
tiere.push({ name: "Coco", art: "Kaninchen", alter: 1 });
tiere[0].alter = 4;
console.log(tiere.length);
console.log(tiere[0]);4
{ name: "Rex", art: "Hund", alter: 4 }Typische Fehler:
tiere.nameergibtundefined. Das Array selbst hat keinen Namen, nur die Tiere darin. Wähle zuerst ein Tier:tiere[0].name.- Ein Index, den es im Array nicht gibt, zum Beispiel
tiere[10].name.tiere[10]istundefined, undundefinedhat keine Eigenschaften, deshalb endet das Programm mitTypeError: Cannot read properties of undefined (reading 'name').
So schreibst du es:
Anweisungen
- 1
Gib die Art des dritten Tiers aus, Kiwi. Die Konsole sollte
Papageianzeigen. - 2
Ein Kaninchen ist angekommen. Füge es mit
push()am Ende des Arrays hinzu:{ name: "Coco", art: "Kaninchen", alter: 1 }. - 3
Gib das ganze Array
tiereaus. Coco sollte jetzt am Ende stehen.