Arrays aus Objekten durchlaufen
Arrays aus Objekten verarbeitet man meistens mit einer Schleife. In einer for...of-Schleife enthält die Schleifenvariable in jedem Durchlauf ein ganzes Objekt, also liest du seine Eigenschaften mit einem Punkt:
const tiere = [
{ name: "Rex", art: "Hund", alter: 3 },
{ name: "Bella", art: "Katze", alter: 2 },
{ name: "Kiwi", art: "Papagei", alter: 4 }
];
for (const tier of tiere) {
console.log(`${tier.name} ist ein Tier der Art ${tier.art}.`);
}Rex ist ein Tier der Art Hund.
Bella ist ein Tier der Art Katze.
Kiwi ist ein Tier der Art Papagei.Im ersten Durchlauf enthält tier Rex' Objekt, im zweiten Bellas, im dritten Kiwis. Es ist eine gute Gewohnheit, das Array im Plural und die Schleifenvariable im Singular zu benennen (tiere, tier). Der Code liest sich dann fast wie ein Satz: für jedes Tier aus den Tieren.
Die Muster aus der Lektion über Schleifen funktionieren auch hier. Um das Alter aller Tiere zu addieren, addiere in jedem Durchlauf das Alter eines Tiers:
let gesamtAlter = 0;
for (const tier of tiere) {
gesamtAlter += tier.alter;
}
console.log("Gesamtalter:", gesamtAlter);Gesamtalter: 9Und mit einem if in der Schleife kannst du nur manche der Objekte auswählen, zum Beispiel die Tiere, die älter als 2 sind:
for (const tier of tiere) {
if (tier.alter > 2) {
console.log(tier.name);
}
}Rex
KiwiEin typischer Fehler ist, die Eigenschaft zu vergessen: gesamtAlter += tier; addiert das ganze Objekt statt seines Alters. Das Ergebnis ist keine Zahl, sondern ein seltsamer Text wie 0[object Object][object Object][object Object].
So schreibst du es:
Anweisungen
- 1
Schreibe eine
for...of-Schleife, diewarenkorbdurchläuft und von jedem Artikel den Namen und den Preis ausgibt, durch einen Doppelpunkt getrennt, zum BeispielHundefutter: 250. - 2
Addiere darunter die Preise aller Artikel und gib das Ergebnis als
Gesamt: 535aus. - 3
Gib zum Schluss die Namen der Artikel aus, die weniger als 100 kosten, jeden in einer eigenen Zeile.