Comment arrêter un JavaScript pour la boucle?
Je suis en utilisant ce JavaScript pour parcourir un tableau et trouver un correspondant de l'élément de tableau:
var remSize = [],
szString, remData, remIndex, i;
for (i = 0; i < remSize.length; i++) {
//I'm looking for the index i, when the condition is true
remSize[i].size == remData.size ? remIndex = i : remIndex = -1;
}
Le tableau contient ces "pointures": ["34", "36", "38"...]
.
remData.size
est la "taille" je suis à la recherche (par exemple, "36").
J'ai besoin de retourner à l'index i
si la taille que je recherche est dans l'index. Sinon j'ai besoin de retourner -1
. Est-il une meilleure façon de le faire?
- C'est la plaine de JavaScript. Utiliser le
break
déclaration.
Vous devez vous connecter pour publier un commentaire.
Pour arrêter un
for
début de la boucle en JavaScript, vous utilisezbreak
:Si vous êtes dans une ES2015 (aka ES6) de l'environnement, pour ce spécifiques cas d'utilisation, vous pouvez utiliser
Array#findIndex
(pour trouver l'entrée d'index) ouArray#find
(pour trouver l'entrée elle-même), qui peuvent tous deux être calée/polyfilled:Array#find
:Array#findIndex
s'arrête la première fois que le callback retourne une truthy valeur, le retour à l'index pour que l'appel à la fonction de rappel; elle renvoie-1
si la fonction de rappel ne retourne jamais un truthy valeur.Array#find
également s'arrête lorsqu'il trouve ce que vous cherchez, mais il renvoie à l'entrée, pas de son index (ouundefined
si la fonction de rappel ne retourne jamais un truthy valeur).Si vous utilisez un ES5 compatible avec l'environnement (ou une ES5 cale), vous pouvez utiliser la nouvelle
certains
function sur les tableaux, qui appelle une fonction de rappel jusqu'à ce que le callback retourne une truthy valeur:Si vous utilisez jQuery, vous pouvez utiliser
jQuery.chaque
pour parcourir un tableau; ce serait ressembler à ceci:break
dans unfor
boucle,return false
dansjQuery.each
,return true
danssome
, ...).La logique est incorrecte. Il serait toujours retourner le résultat du dernier élément dans le tableau.
Utiliser pour de la boucle à la place qui est la partie de ES2015 libération. À la différence de forEach, on peut utiliser le retour, break et continue. Voir https://hacks.mozilla.org/2015/04/es6-in-depth-iterators-and-the-for-of-loop/