Comment arrêter une boucle forEach en JavaScript ?
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
true
pour continuer à faire tourner la boucle.
Aucun commentaire pour l'instant