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).