Comment arrêter une boucle forEach en JavaScript ?
NicolasBrondinBernard
Découvrez comment faire en contournant le problème grâce à la méthode some()

Article publié le 13/08/2024, dernière mise à jour le 13/08/2024
Si vous cherchez un équivalent à la commande break des boucles for() classiques, mais pour les boucles forEach()…
Pour faire court, ça n’existe pas. Mais attendez, ne partez pas si vite !
Il existe en réalité une solution qui fonctionne très bien, et qui vous permet de :
- Conserver la syntaxe fonctionnelle du
forEach() - Conserver l’optimisation du
break

La solution
Prenons un exemple d’une boucle forEach() très simple pour comprendre comment arriver à notre résultat :
const data = [1, 2, 3, 4, 5, 6];
data.forEach((item, index, arr)=>{
if(item >= 3) {
// do something
// stop
}
});
La boucle forEach() ne s’arrêtera que lorsque TOUTE la liste sera parcourue.
Mais pour rendre notre code plus efficace, il nous suffit de remplacer forEach() par some(), comme ceci :
const data = [1, 2, 3, 4, 5, 6];
data.some((item, index, arr)=>{
if(item >= 3) {
// do something
return true;
}
});
La méthode some() permet de vérifier qu’au moins un élément de la liste fournie rempli les conditions attendues. Tant que l’on retourne false ou void, la boucle continue, mais s’arrête dès qu’elle reçoit la valeur true !
Ici on détourne légèrement sont utilisation classique, de manière à optimiser le nombre de tours de boucle effectués.
Retrouvez la documentation de la méthode some() juste ici
Alternative
Si votre code est plus propice à retourner la valeur false pour arrêter la boucle, vous pouvez simplement remplacer la méthode some par every.
Attention néanmoins, il faudra bien penser à toujours renvoyer
truepour continuer à faire tourner la boucle.
Des cours complets, des exercices et des certificats pour vraiment apprendre la programmation !
4,8 en moyenne
Aucun commentaire pour l'instant