Sobes.tech
Junior

Quelle est la différence entre les boucles for...in et for...of?

sobes.tech IA

Réponse de l'IA

La boucle for...in parcourt les clés (propriétés) des propriétés énumérables de l'objet, y compris celles de sa chaîne de prototypes.

La boucle for...of parcourt les valeurs des objets itérables (Array, Map, Set, String, arguments, etc.). Elle ne parcourt pas les propriétés du prototype.

for...in for...of
Itère sur Clés (propriétés) des objets Valeurs des objets itérables
Utilisé avec Objets Arrays, chaînes, Map, Set et autres objets itérables
Prototype Itère sur les propriétés du prototype N'itère pas sur les propriétés du prototype
Ordre de parcours Non garanti pour les clés non entières Garanti pour les arrays (par index)

Exemple for...in:

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

Exemple for...of:

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

En général, pour parcourir des tableaux et structures similaires, il est préférable d'utiliser for...of, et pour parcourir les propriétés des objets, for...in (souvent en combinaison avec hasOwnProperty pour exclure les propriétés du prototype).