Lektion 6 von 11JavaScript
JavaScript · Lektion 6 · 30 Minuten
Objekte
Das lernst du
- Objekte mit Eigenschaften anlegen
- Eigenschaften lesen und ändern
- Mit Arrays von Objekten arbeiten
Ein Objekt anlegen
Ein Objekt fasst zusammengehörige Werte unter Namen zusammen – wie ein Steckbrief:
const hund = {
name: "Bello",
alter: 4,
tricks: ["Sitz", "Platz"],
};
console.log(hund.name);
console.log(hund.tricks.length);
console.log(hund);Python-Vergleich: Das ähnelt einem Dictionary. Statt
hund["name"]schreibt man in JavaScript meistenshund.name.
Ändern und ergänzen
const spieler = { name: "Mia", punkte: 0 };
spieler.punkte += 10;
spieler.level = 2; // neue Eigenschaft
console.log(spieler);Objekte mit Funktionen
Ein Objekt kann auch Funktionen enthalten – dann heißen sie Methoden:
const zaehler = {
stand: 0,
plus() {
this.stand++;
},
};
zaehler.plus();
zaehler.plus();
console.log(zaehler.stand);this bedeutet „dieses Objekt selbst“ – wie self in Python.
Arrays von Objekten
Richtig stark wird es, wenn man beides kombiniert – so sehen echte Daten aus:
const klasse = [
{ name: "Ana", note: 2 },
{ name: "Ben", note: 1 },
{ name: "Cem", note: 3 },
];
for (const kind of klasse) {
console.log(`${kind.name}: ${kind.note}`);
}
console.log(klasse.filter((k) => k.note <= 2).map((k) => k.name));Kurz-Check
Was gibt dieses Programm aus?
const auto = { marke: "Kiwi", km: 100 };
auto.km += 50;
console.log(auto.marke.length, auto.km);Deine Aufgabe
Jetzt bist du dran
Schreib die Funktion bester(spieler). Sie bekommt ein Array von Objekten wie { name: "Ana", punkte: 12 } und gibt den Namen des Spielers mit den meisten Punkten zurück.
function bester(spieler) {
}
const liste = [
{ name: "Ana", punkte: 12 },
{ name: "Ben", punkte: 30 },
{ name: "Cem", punkte: 7 },
];
console.log(bester(liste));- Denkanstoß
Merk dir den bisher besten Spieler und vergleiche mit
for…ofjeden weiteren übers.punkte. - Lückencode – ergänze die ___
function bester(spieler) { let top = ___; for (___) { if (___) { top = ___; } } return ___; } const liste = [ { name: "Ana", punkte: 12 }, { name: "Ben", punkte: 30 }, { name: "Cem", punkte: 7 }, ]; console.log(bester(liste));
Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.
Lösung anzeigen🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:
function bester(spieler) {
let top = spieler[0];
for (const s of spieler) {
if (s.punkte > top.punkte) {
top = s;
}
}
return top.name;
}
const liste = [
{ name: "Ana", punkte: 12 },
{ name: "Ben", punkte: 30 },
{ name: "Cem", punkte: 7 },
];
console.log(bester(liste));