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

nicolasbrondinbernard_A_knot_made_with_a_rope._Background_100_w_c578ca08-cfb7-4a54-8c92-b1aa011bb6bc.png

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.


Vous avez terminé l'article ?

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant