Sobes.tech
Junior

Wat is het verschil tussen de for...in en for...of lussen?

sobes.tech AI

Antwoord van AI

De for...in-lus door de sleutels (eigenschappen) van de enumerateerbare eigenschappen van een object, inclusief eigenschappen in de prototypeketen.

De for...of-lus doorloopt de waarden van iterabele objecten (Array, Map, Set, String, arguments, etc.). Het doorloopt niet de eigenschappen van het prototype.

for...in for...of
Itereert over Sleutels (eigenschappen) van objecten Waarden van iterabele objecten
Gebruikt met Objecten Arrays, strings, Map, Set en andere iterabele objecten
Prototype Itereert over de eigenschappen van het prototype Itereert niet over de eigenschappen van het prototype
Volgorde Niet gegarandeerd voor niet-integer sleutels Gegarandeerd voor arrays (op index)

Voorbeeld for...in:

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

Voorbeeld for...of:

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

Over het algemeen is het beter om for...of te gebruiken voor het itereren over arrays en soortgelijke structuren, en for...in voor het itereren over de eigenschappen van objecten (vaak in combinatie met hasOwnProperty om prototype-eigenschappen uit te sluiten).