Sobes.tech
Junior

Was ist der Unterschied zwischen den Schleifen for...in und for...of?

sobes.tech KI

Antwort von AI

Die Schleife for...in iteriert über die Schlüssel (Eigenschaften) der aufzählbaren Eigenschaften eines Objekts, einschließlich der Eigenschaften seiner Prototyp-Kette.

Die Schleife for...of iteriert über die Werte von iterierbaren Objekten (Array, Map, Set, String, arguments usw.). Sie iteriert nicht über die Eigenschaften des Prototyps.

for...in for...of
Iteriert über Schlüssel (Eigenschaften) von Objekten Werte von iterierbaren Objekten
Verwendet mit Objekten Arrays, Strings, Map, Set und andere iterierbare Objekte
Prototyp Iteriert über die Eigenschaften des Prototyps Iteriert nicht über die Eigenschaften des Prototyps
Reihenfolge Nicht garantiert für nicht-ganzzahlige Schlüssel Garantiert für Arrays (nach Index)

Beispiel for...in:

const obj = { a: 1, b: 2 };
for (const key in obj) {
  console.log(key, obj[key]); // Gibt aus: "a 1", "b 2"
}

Beispiel for...of:

const arr = [1, 2, 3];
for (const value of arr) {
  console.log(value); // Gibt aus: 1, 2, 3
}

Im Allgemeinen ist es besser, for...of zum Durchlaufen von Arrays und ähnlichen Strukturen zu verwenden, und for...in zum Durchlaufen von Objekt-Eigenschaften (oft in Kombination mit hasOwnProperty, um Eigenschaften des Prototyps auszuschließen).