4.8 Boucle for...of

Depuis ECMAScript 6 (ES6), JavaScript propose une nouvelle manière d'itérer sur un tableau avec la boucle for...of. Elle est très proche de for...in sur le plan syntaxique : la seule différence est le mot-clé. On utilise of à la place de in.

Syntaxe et exemple

Reprenons un tableau couleurs = ['rouge', 'vert', 'bleu']. Avec for (let couleur of couleurs), la variable de boucle couleur reçoit directement chaque élément du tableau à chaque itération, et non plus son index. Plus besoin de manipuler un index, plus besoin d'écrire tableau[index] : on accède immédiatement à la valeur.

const couleurs = ['rouge', 'vert', 'bleu'];

for (let couleur of couleurs)
  console.log(couleur);
// Affiche : rouge, vert, bleu

Récapitulatif for...in vs for...of

  • for...in : parcourt les propriétés d'un objet (clés)
  • for...of : parcourt les éléments d'un tableau (valeurs)

C'est cette distinction qu'il faut retenir. Pour les tableaux, préférez for...of : la syntaxe est plus claire, et on s'épargne la gestion manuelle d'index. On se retrouve pour la prochaine vidéo.

En résumé

La boucle `for...of` est une syntaxe moderne (ES6+) qui permet d'itérer simplement sur les éléments d'un tableau sans gérer d'index. Contrairement à la boucle `for` classique, chaque itération reçoit directement l'élément du tableau dans la variable de contrôle. À noter : `for...in` itère sur les propriétés d'objets, tandis que `for...of` itère sur les éléments de tableaux.

Points clés

  • Syntaxe `for...of` introduite en ES6 pour itérer sur les éléments d'un tableau
  • Pas besoin de gérer l'index contrairement à la boucle `for` classique
  • À chaque itération, la variable reçoit directement l'élément du tableau
  • Différent de `for...in` qui itère sur les propriétés d'un objet
  • Code plus lisible et pratique : `for (let element of tableau)`
  • Exemple d'utilisation : boucler sur un tableau de couleurs sans accès d'index

Questions fréquentes

Quelle est la différence entre `for...of` et la boucle `for` classique ?

`for...of` itère directement sur les éléments sans gérer l'index, tandis que `for` classique nécessite de maintenir un index et d'accéder à chaque élément manuellement via cet index.

Peut-on utiliser `for...of` pour itérer sur les propriétés d'un objet ?

Non, `for...of` s'utilise pour les tableaux. Pour itérer sur les propriétés d'un objet, on utilise `for...in` à la place.

Comment récupère-t-on l'élément actuel avec `for...of` ?

La variable de la boucle reçoit directement l'élément à chaque itération, sans besoin d'accéder par index. Par exemple, avec `for (let couleur of couleurs)`, la variable `couleur` contient chaque élément du tableau.