Wie man ein Objekt in JavaScript durchläuft: vom Anfänger zum Profi
\n\nJeder 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\nIn 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!
Vorbereitung: Erstellen eines Testobjekts
\n\nDamit die Beispiele anschaulich sind, nehmen wir ein einfaches Benutzerobjekt:
\n\nconst user = {\n name: 'Anna',\n age: 28,\n city: 'Moskau',\n isAdmin: false\n};\n\nUnsere Aufgabe ist es, alle Schlüssel und Werte auszugeben. Schauen wir uns an, welche Werkzeuge im Arsenal von JavaScript vorhanden sind.
\n\n1. Die for...in-Schleife – der Klassiker
\n\nDer älteste und grundlegendste Weg zum Durchlaufen von Objekteigenschaften. Er existiert seit ES3 und funktioniert in allen Browsern.
\n\nfor (let key in user) {\n console.log(key + ': ' + user[key]);\n}\n// name: Anna\n// age: 28\n// city: Moskau\n// isAdmin: false\n\nWichtiger Hinweis: for...in durchläuft nicht nur eigene Eigenschaften, sondern auch geerbte über die Prototypenkette. Um diese zu filtern, verwenden Sie hasOwnProperty:
for (let key in user) {\n if (user.hasOwnProperty(key)) {\n console.log(key + ': ' + user[key]);\n }\n}\n\nModerne Objekte haben selten zusätzliche Prototyp-Eigenschaften, aber die Gewohnheit, hasOwnProperty zu prüfen, schützt vor Fehlern bei der Arbeit mit Bibliotheken.
2. Object.keys() – der moderne Ansatz
\n\nDie 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.
const keys = Object.keys(user);\nconsole.log(keys); // ['name', 'age', 'city', 'isAdmin']\n\nkeys.forEach(key => {\n console.log(key + ': ' + user[key]);\n});\n\nVorteile:
\n- \n
- Funktioniert nur mit eigenen Eigenschaften (nicht geerbt) \n
- Gibt ein Array zurück –
forEach,map,filterkönnen verwendet werden \n - Lesbarer und vorhersagbarer Code \n
Dies ist meine bevorzugte Methode, wenn ich einfach eine Liste von Schlüsseln benötige und damit arbeiten möchte.
\n\n3. Object.values() – wenn nur Werte benötigt werden
\n\nManchmal interessieren uns nur die Werte der Eigenschaften, ohne die Schlüssel. Zum Beispiel zum Summieren oder Anzeigen von Daten.
\n\nconst values = Object.values(user);\nconsole.log(values); // ['Anna', 28, 'Moskau', false]\n\nvalues.forEach(value => {\n console.log(value);\n});\n\nDie 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\n4. Object.entries() – der König unter den Methoden
\n\nObject.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.
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\nBeachten Sie die Destrukturierung in den Parametern von forEach: ([key, value]). Dies macht den Code sauber und prägnant.
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