Zum Inhalt springen
BetaEN
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 meistens hund.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));

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

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));