Wie man ein Objekt in JavaScript durchläuft: 5 Methoden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wie man ein Objekt in JavaScript durchläuft: vom Anfänger zum Profi

\n\n

Jeder Entwickler steht früher oder später vor der Aufgabe: „Wie durchlaufe ich alle Eigenschaften eines Objekts?“. Die Frage ist so beliebt, dass sie auf Stack Overflow tausende Aufrufe und hunderte Antworten gesammelt hat. Und das ist kein Wunder – Objekte in JavaScript sind die Grundlage von allem: von Konfigurationen bis zu Daten vom Server.

\n\n

In diesem Tutorial behandeln wir alle grundlegenden Methoden zum Durchlaufen eines Objekts in JavaScript, von der Klassik bis zu modernen Ansätzen. Sie erfahren, wann Sie for...in verwenden, was Object.keys besser macht und wie Object.entries das Leben vereinfacht. Los geht's!

\n\n

Vorbereitung: Erstellen eines Testobjekts

\n\n

Damit die Beispiele anschaulich sind, nehmen wir ein einfaches Benutzerobjekt:

\n\n
const user = {\n  name: 'Anna',\n  age: 28,\n  city: 'Moskau',\n  isAdmin: false\n};
\n\n

Unsere Aufgabe ist es, alle Schlüssel und Werte auszugeben. Schauen wir uns an, welche Werkzeuge im Arsenal von JavaScript vorhanden sind.

\n\n

1. Die for...in-Schleife – der Klassiker

\n\n

Der älteste und grundlegendste Weg zum Durchlaufen von Objekteigenschaften. Er existiert seit ES3 und funktioniert in allen Browsern.

\n\n
for (let key in user) {\n  console.log(key + ': ' + user[key]);\n}\n// name: Anna\n// age: 28\n// city: Moskau\n// isAdmin: false
\n\n

Wichtiger Hinweis: for...in durchläuft nicht nur eigene Eigenschaften, sondern auch geerbte über die Prototypenkette. Um diese zu filtern, verwenden Sie hasOwnProperty:

\n\n
for (let key in user) {\n  if (user.hasOwnProperty(key)) {\n    console.log(key + ': ' + user[key]);\n  }\n}
\n\n

Moderne Objekte haben selten zusätzliche Prototyp-Eigenschaften, aber die Gewohnheit, hasOwnProperty zu prüfen, schützt vor Fehlern bei der Arbeit mit Bibliotheken.

\n\n

2. Object.keys() – der moderne Ansatz

\n\n

Die Methode Object.keys() gibt ein Array der eigenen Schlüssel eines Objekts zurück. Das vermeidet Probleme mit Prototypen und gibt Zugriff auf alle Array-Methoden.

\n\n
const keys = Object.keys(user);\nconsole.log(keys); // ['name', 'age', 'city', 'isAdmin']\n\nkeys.forEach(key => {\n  console.log(key + ': ' + user[key]);\n});
\n\n

Vorteile:

\n
    \n
  • Funktioniert nur mit eigenen Eigenschaften (nicht geerbt)
  • \n
  • Gibt ein Array zurück – forEach, map, filter können verwendet werden
  • \n
  • Lesbarer und vorhersagbarer Code
  • \n
\n\n

Dies ist meine bevorzugte Methode, wenn ich einfach eine Liste von Schlüsseln benötige und damit arbeiten möchte.

\n\n

3. Object.values() – wenn nur Werte benötigt werden

\n\n

Manchmal interessieren uns nur die Werte der Eigenschaften, ohne die Schlüssel. Zum Beispiel zum Summieren oder Anzeigen von Daten.

\n\n
const values = Object.values(user);\nconsole.log(values); // ['Anna', 28, 'Moskau', false]\n\nvalues.forEach(value => {\n  console.log(value);\n});
\n\n

Die Methode wurde in ES2017 eingeführt und eignet sich hervorragend für die Arbeit mit Datensammlungen, bei denen die Schlüssel keine Rolle spielen.

\n\n

4. Object.entries() – der König unter den Methoden

\n\n

Object.entries() gibt ein Array von Arrays zurück, wobei jedes innere Array ein Paar [Schlüssel, Wert] ist. Dies ist ein universelles Werkzeug zum Durchlaufen eines Objekts in JavaScript.

\n\n
const entries = Object.entries(user);\nconsole.log(entries);\n// [\n//   ['name', 'Anna'],\n//   ['age', 28],\n//   ['city', 'Moskau'],\n//   ['isAdmin', false]\n// ]\n\nentries.forEach(([key, value]) => {\n  console.log(`${key}: ${value}`);\n});
\n\n

Beachten Sie die Destrukturierung in den Parametern von forEach: ([key, value]). Dies macht den Code sauber und prägnant.

\n\n

Wann verwenden:

\n
    \n
  • Wenn sowohl Schlüssel als auch Werte benötigt werden
  • \n
  • Wenn Sie ein Objekt in eine andere Struktur umwandeln möchten (z. B. in eine Map)
  • \n
  • Wenn Sie eine funktionale

Blogs

Buchempfehlungen