La boucle for en JavaScript, et quelle boucle choisir

Les boucles JavaScript comparées

La boucle for en JavaScript et toutes les autres, comparées en direct | We.Inc

for, for...of, for...in, while, do...while et forEach côte à côte. Exécutez chaque boucle sur un tableau, une chaîne, un objet ou une Map et voyez le résultat, ou l'erreur levée.

Une boucle for classique a trois parties : for (let i = 0; i < arr.length; i++) { ... }. Utilisez-la quand vous avez besoin de l'index ou d'un pas personnalisé. Pour les valeurs simples, utilisez for...of, pour les clés d'un objet for...in ou Object.entries, et while quand vous ne savez pas à l'avance combien de tours il faut.

Quelle boucle pour quel besoin

Toutes les boucles de cette page répètent du code, mais elles diffèrent par ce qu'elles vous donnent à chaque tour, ce qu'elles peuvent parcourir et la façon d'en sortir. L'outil ci-dessous permet d'appliquer chaque boucle à quatre types de données et d'observer le vrai résultat, ce qui rend faciles à repérer des erreurs comme for...in sur un tableau ou for...of sur un objet simple.

Questions fréquentes

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

for...of vous donne les valeurs de tout ce qui est itérable, comme les éléments d'un tableau ou les caractères d'une chaîne. for...in vous donne les noms de propriétés sous forme de chaînes, y compris les propriétés énumérables héritées. Sur un tableau, for...in produit '0', '1', '2' au lieu des éléments.

Comment sortir d'une boucle forEach ?

C'est impossible, sauf en levant une erreur. Passez à for...of, qui prend en charge break, ou à some, every, find ou findIndex, qui s'arrêtent d'eux-mêmes dès qu'ils ont une réponse.

Comment parcourir un objet en JavaScript ?

Utilisez for (const [key, value] of Object.entries(obj)). Cela ne couvre que les clés propres de l'objet et vous donne les deux parties. Utiliser for...of directement sur un objet simple lève TypeError: obj is not iterable.

Comment sortir de deux boucles imbriquées à la fois ?

Placez une étiquette avant la boucle externe et utilisez-la avec break : outer: for (...) { for (...) { if (found) break outer; } }. continue outer passe plutôt au tour suivant de la boucle externe.

Comment parcourir une boucle à l'envers ?

Commencez au dernier index et décomptez : for (let i = arr.length - 1; i >= 0; i--). C'est aussi la manière sûre de supprimer des éléments avec splice pendant la boucle, car les positions qu'il vous reste à visiter ne se décalent pas.

Lire les trois parties d'une boucle for

break, continue et étiquettes

Modèles de boucles à copier

for classique, en avant, en arrière et par pas

Modifiez le départ, la condition ou le pas pour compter comme vous voulez.

for...of avec l'index

entries() associe chaque valeur à sa position, vous obtenez donc les deux sans compteur.

while et do...while

do...while vérifie sa condition après le corps, donc le corps s'exécute une fois même si la condition est fausse au départ.

Sortir de boucles imbriquées avec une étiquette

break grid arrête les deux boucles dès que la première correspondance est trouvée.

Attendre chaque élément dans l'ordre

for...of marque une pause à chaque await. Le même code dans forEach lancerait toutes les requêtes en même temps sans attendre.

Exécuteur de boucles

Choisissez une boucle et des données. La boucle s'exécute vraiment, et chaque tour est listé ci-dessous.

Boucle

Données

Tableau

Chaîne

Objet simple

Map

break après le troisième tour

Ce qui s'exécute

Résultat

Tour {n} : {v}

forEach n'a pas de break. Le return dans le callback ne termine que cet appel, donc tous les tours s'exécutent quand même.

Lève {v}

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site