162 votes

Comment arrêter une boucle JavaScript for ?

J'utilise ce JavaScript pour parcourir un tableau et trouver un élément de tableau correspondant :

 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 "tailles": ["34", "36", "38"...] .

remData.size est la "taille" que je recherche (par exemple "36").

Je dois renvoyer l'index i si la taille que je recherche est dans l'index. Sinon, je dois retourner -1 . Y a-t-il une meilleure manière de faire cela?

29voto

Srini Karthikeyan Points 404

Utilisez plutôt la boucle for of qui fait partie de la version ES2015. Contrairement à forEach, nous pouvons utiliser return, break et continue. Voir https://hacks.mozilla.org/2015/04/es6-in-depth-iterators-and-the-for-of-loop/

 let arr = [1,2,3,4,5];
for (let ele of arr) {
  if (ele > 3) break;
  console.log(ele);
}

10voto

amit_g Points 15415

La logique est incorrecte. Il renverrait toujours le résultat du dernier élément du tableau.

 remIndex = -1;

for (i = 0; i < remSize.length; i++) {      
    if (remSize[i].size == remData.size) {
        remIndex = i
        break;
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X