Maison > interface Web > js tutoriel > Pourquoi « return » ne rompt-il pas une boucle « forEach » en JavaScript ?

Pourquoi « return » ne rompt-il pas une boucle « forEach » en JavaScript ?

Linda Hamilton
Libérer: 2024-12-20 18:24:12
original
897 Les gens l'ont consulté

Why Doesn't `return` Break a `forEach` Loop in JavaScript?

Comprendre le comportement du return à l'intérieur de la fonction forEach

Souvent en JavaScript, il existe une idée fausse sur le comportement du mot-clé return dans la fonction forEach . Cet article vise à clarifier son utilisation prévue.

Considérez l'extrait de code suivant :

$('button').click(function () {
  [1, 2, 3, 4, 5].forEach(function (n) {
    if (n == 3) {
      // It should break out here and doesn't alert anything after
      return false;
    }
    alert(n);
  });
});
Copier après la connexion

Dans ce code, l'instruction return est utilisée dans la boucle forEach pour arrêter prématurément l'itération. Cependant, le code continue d'alerter les éléments suivants du tableau. Pourquoi cela se produit-il ?

La vraie nature du retour dans forEach

Contrairement à la croyance populaire, l'instruction return dans la fonction forEach a une signification différente de celle dans constructions de boucles comme for ou while. Dans forEach, le retour ne signifie pas une fin anticipée de la boucle.

Explication du réseau de développeurs Mozilla

Selon la documentation officielle du réseau de développeurs Mozilla :

"Il n'y a aucun moyen d'arrêter ou de rompre une boucle forEach() autrement qu'en lançant une exception. Si vous avez besoin d'un tel comportement, le La méthode forEach() n'est pas le bon outil."

Approches alternatives

Si votre objectif est d'arrêter conditionnellement l'itération de la boucle, il existe des méthodes alternatives disponibles :

  • Boucle simple : Créez une boucle for ou while traditionnelle avec des conditions explicites pour les débuts terminaison.
  • for...of Loop : Utilisez la boucle for...of, qui offre des capacités de terminaison immédiate avec des instructions break.
  • Array. prototype.every() : Utilisez la méthode Every(), qui vous permet d'appliquer un prédicat à chaque élément et de rompre la boucle plus tôt si le prédicat renvoie false pour un élément. element.
  • Autres méthodes de tableau : D'autres méthodes comme some(), find() et findIndex() offrent également des moyens d'interrompre la boucle en fonction de critères spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal