Das Iterieren über Objekte ist eine grundlegende Aufgabe in der JavaScript-Programmierung. Anders als Arrays sind Objekte in JavaScript nicht standardmäßig iterierbar. Das bedeutet, dass Sie Methoden wie forEach(), map() oder die for...of-Schleife nicht direkt auf ein Objekt anwenden können. Es gibt jedoch mehrere Möglichkeiten, die Eigenschaften eines Objekts zu durchlaufen und sowohl auf Schlüssel als auch auf Werte zuzugreifen. In diesem Artikel stellen wir verschiedene Methoden vor, um effizient über ein JavaScript-Objekt zu iterieren – einschließlich Syntax, Beispielen und Anwendungsfällen.
Wichtige Erkenntnisse: JavaScript-Objekte sind nicht von sich aus iterierbar, doch es gibt mehrere Methoden, um ihre Eigenschaften zu durchlaufen. Die for...in-Schleife ist der traditionelle Ansatz, erfordert jedoch eine Prüfung mit hasOwnProperty(). Neuere Methoden wie Object.entries() mit map()/forEach(), Object.keys() mit forEach() und Object.values() bieten schlankere Ansätze. Die Methode _.forOwn() von Lodash bietet eine praktische Syntax für alle, die die Bibliothek bereits verwenden. Die Wahl der Iterationsmethode hängt von Anforderungen an die Browserkompatibilität, der Lesbarkeit des Codes und spezifischen Anwendungsfällen ab. Die Performance kann zwischen den Methoden leicht variieren, doch die Unterschiede sind für die meisten Anwendungen in der Regel vernachlässigbar. Entwickler sollten daher der Klarheit und Wartbarkeit des Codes Priorität einräumen.
Schreiben Sie Code, auch wenn Sie Anfänger sind – mit Latenodes AI Copilot
Methode 1: Verwendung der for...in-Schleife
Die for...in-Schleife ist eine traditionelle Methode, um über die Eigenschaften eines Objekts zu iterieren. Sie ermöglicht Ihnen den Zugriff auf beide Schlüssel und Werte eines Objekts. So funktioniert sie:
Syntax:
for (let key in object) {
if (object.hasOwnProperty(key)) {
// Perform operations with key and object[key]
}
}
Beispiel:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
for (let key in person) {
if (person.hasOwnProperty(key)) {
console.log(key + ': ' + person[key]);
}
}
Output:
name: John
age: 30
city: New York
Es ist wichtig, die Methode hasOwnProperty() innerhalb der Schleife zu verwenden, um zu prüfen, ob der Schlüssel zum Objekt selbst und nicht zu seiner Prototypkette gehört. Dadurch stellen Sie sicher, dass Sie nur über die eigenen Eigenschaften des Objekts iterieren und geerbte Eigenschaften vermeiden.
Die for...in-Schleife in JavaScript ist eine unkomplizierte Möglichkeit, die Eigenschaften eines Objekts zu durchlaufen. Sie hat jedoch einige Einschränkungen:
- Sie iteriert über alle aufzählbaren Eigenschaften eines Objekts, einschließlich geerbter Eigenschaften aus der Prototypkette. Deshalb ist es erforderlich, hasOwnProperty() zu verwenden, um geerbte Eigenschaften herauszufiltern.
- Die Reihenfolge der Iteration ist nicht garantiert. Die Eigenschaften werden möglicherweise nicht in derselben Reihenfolge aufgerufen, in der sie definiert wurden.
Trotz dieser Einschränkungen bleibt die for...in-Schleife aufgrund ihrer Einfachheit und breiten Browserunterstützung eine häufig verwendete Methode für die Objektiteration.
Methode 2: Verwendung der Methode Object.entries() und der Methode map()
Die Methode Object.entries() ist eine neuere Ergänzung in JavaScript (eingeführt mit ECMAScript 2017), die ein Array aus [Schlüssel, Wert]-Paaren der eigenen aufzählbaren Eigenschaften eines gegebenen Objekts mit String-Schlüsseln zurückgibt. Anschließend können wir die Methode map() verwenden, um über das Array zu iterieren und auf Schlüssel und Werte zuzugreifen.
Syntax:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
for (let key in person) {
if (person.hasOwnProperty(key)) {
console.log(key + ': ' + person[key]);
}
}
Output:
name: John
age: 30
city: New York
Beispiel:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
for (let key in person) {
if (person.hasOwnProperty(key)) {
console.log(key + ': ' + person[key]);
}
}
Output:
name: John
age: 30
city: New York
Die Methode Object.entries() bietet eine praktische Möglichkeit, ein Array aus Schlüssel-Wert-Paaren eines Objekts zu erhalten. In Kombination mit der Methode map() können Sie einfach über das Array iterieren und Operationen für jedes Schlüssel-Wert-Paar ausführen.
Ein Vorteil von Object.entries() besteht darin, dass die Methode nur die eigenen aufzählbaren Eigenschaften des Objekts zurückgibt und geerbte Eigenschaften aus der Prototypkette ausschließt. Dadurch entfällt die Notwendigkeit einer zusätzlichen Prüfung mit hasOwnProperty().
Beachten Sie jedoch, dass Object.entries() von älteren Browsern wie Internet Explorer nicht unterstützt wird. Wenn Browserkompatibilität wichtig ist, müssen Sie möglicherweise einen Polyfill oder eine alternative Methode verwenden.
Weitere Informationen zu Object.entries() finden Sie in der MDN-Dokumentation.
Methode 3: Verwendung der Methode forEach() und der Methode Object.keys()
Die Methode Object.keys() gibt ein Array mit den Namen der eigenen aufzählbaren Eigenschaften (Schlüssel) eines gegebenen Objekts zurück. Mit der Methode forEach() können wir über das Schlüssel-Array iterieren und mithilfe der Schlüssel auf die entsprechenden Werte zugreifen.
Syntax:
Object.keys(object).forEach(key => {
// Perform operations with key and object[key]
});
Beispiel:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
Object.keys(person).forEach(key => {
console.log(key + ': ' + person[key]);
});
Output:
name: John
age: 30
city: New York
Die Verwendung von Object.keys() in Kombination mit forEach() bietet eine Möglichkeit, über die Schlüssel eines Objekts zu iterieren und auf die entsprechenden Werte zuzugreifen. Diese Methode ist nützlich, wenn Sie nur die Schlüssel eines Objekts benötigen und auf Grundlage dieser Schlüssel Operationen ausführen möchten.
Ähnlich wie Object.entries() gibt Object.keys() nur die eigenen aufzählbaren Eigenschaften des Objekts zurück. Daher müssen Sie hasOwnProperty() nicht verwenden, um geerbte Eigenschaften herauszufiltern.
Weitere Informationen zu Object.keys() finden Sie in der MDN-Dokumentation.
Methode 4: Verwendung der Methode Lodash _.forOwn()
Lodash ist eine beliebte Utility-Bibliothek, die eine Reihe hilfreicher Funktionen für die Arbeit mit Objekten und Arrays bietet. Wenn Sie Lodash bereits in Ihrem Projekt verwenden, können Sie dessen Methode _.forOwn() einsetzen, um über die eigenen Eigenschaften eines Objekts zu iterieren.
Syntax:
_.forOwn(object, (value, key) => {
// Perform operations with key and value
});
Beispiel:
const _ = require('lodash');
const person = {
name: 'John',
age: 30,
city: 'New York'
};
_.forOwn(person, (value, key) => {
console.log(key + ': ' + value);
});
Output:
name: John
age: 30
city: New York
Die Methode _.forOwn() iteriert über die eigenen aufzählbaren Eigenschaften eines Objekts und übergibt Wert und Schlüssel an die Callback-Funktion. Sie ist eine praktische Alternative zur for...in-Schleife, wenn Sie Lodash bereits in Ihrem Projekt verwenden.
Beachten Sie, dass die Verwendung von Lodash die Installation der Bibliothek und ihren Import in Ihr Projekt erfordert. Wenn Sie Lodash nicht für andere Zwecke verwenden, ist es möglicherweise nicht nötig, die Bibliothek ausschließlich für die Objektiteration einzubinden.
Weitere Informationen zu Lodash und seinen Methoden zur Objektiteration finden Sie in der Lodash-Dokumentation.
Methode 5: Verwendung der Methode Object.values() und der Methode forEach()
Die Methode Object.values() gibt ein Array mit den Werten der eigenen aufzählbaren Eigenschaften eines gegebenen Objekts zurück. Mit der Methode forEach() können wir über das Werte-Array eines JavaScript-Objekts iterieren. Wenn Sie auch die entsprechenden Schlüssel benötigen, können Sie zusätzlich Object.keys() verwenden.
Syntax:
Object.values(object).forEach((value, index) => {
const key = Object.keys(object)[index];
// Perform operations with key and value
});
Beispiel:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
Object.values(person).forEach((value, index) => {
const key = Object.keys(person)[index];
console.log(key + ': ' + value);
});
Output:
name: John
age: 30
city: New York
Mit Object.values() können Sie direkt über die Werte eines Objekts iterieren. Wenn Sie auch die entsprechenden Schlüssel benötigen, können Sie diese über Object.keys() abrufen und auf den Schlüssel mit demselben Index wie der Wert zugreifen.
Diese Methode ist nützlich, wenn Sie hauptsächlich mit den Werten eines Objekts arbeiten müssen und bei Bedarf optional auf die Schlüssel zugreifen möchten.
Weitere Informationen zu Object.values() finden Sie in der MDN-Dokumentation.
Fazit
In diesem Artikel haben wir verschiedene Methoden vorgestellt, um über ein JavaScript-Objekt zu iterieren. Jede Methode bietet eigene Vorteile und Anwendungsfälle:
- Die for...in-Schleife ist eine traditionelle Methode, um über ein JavaScript-Objekt zu iterieren. Sie ist einfach und wird breit unterstützt, erfordert jedoch eine zusätzliche Prüfung mit hasOwnProperty(), um geerbte Eigenschaften nicht zu durchlaufen.
- Die Methode Object.entries() bietet in Kombination mit map() oder forEach() eine kompakte Möglichkeit, auf Schlüssel und Werte eines Objekts zuzugreifen. Sie macht hasOwnProperty() überflüssig, wird jedoch möglicherweise nicht von älteren Browsern unterstützt.
- Die Methode Object.keys() ermöglicht zusammen mit forEach(), über die Schlüssel eines Objekts zu iterieren und auf die entsprechenden Werte zuzugreifen. Sie ist nützlich, wenn Sie hauptsächlich mit den Schlüsseln arbeiten müssen.
- Die Methode Lodash _.forOwn() ist eine praktische Option, wenn Sie Lodash bereits in Ihrem Projekt verwenden. Sie bietet eine saubere Syntax für die Iteration über die eigenen Eigenschaften eines Objekts.
- Die Methode Object.values() konzentriert sich in Kombination mit forEach() auf die Iteration über die Werte eines Objekts. Wenn Sie auch die Schlüssel benötigen, können Sie zusätzlich Object.keys() verwenden.
Berücksichtigen Sie bei der Wahl einer Methode zum Iterieren über ein JavaScript-Objekt Faktoren wie Browserkompatibilität, Code-Lesbarkeit und die spezifischen Anforderungen Ihres Anwendungsfalls. Unabhängig von der gewählten Methode ist das Verständnis einer effektiven Objektiteration entscheidend für eine effiziente JavaScript-Programmierung.
Schreiben Sie Code, auch wenn Sie Anfänger sind – mit Latenodes AI Copilot


