web-dev-qa-db-fra.com

Comment "continuer" à l'intérieur d'une boucle: underscore, node.js

Le code dans node.js est assez simple.

_.each(users, function(u, index) {
  if (u.superUser === false) {
    //return false would break
    //continue?
  }
  //Some code
});

Ma question est comment puis-je continuer à l'index suivant sans exécuter "Some code" si superUser est défini sur false?

PS: Je sais qu'une autre condition résoudrait le problème. Toujours curieux de connaître la réponse.

78
user1741851
_.each(users, function(u, index) {
  if (u.superUser === false) {
    return;
    //this does not break. _.each will always run
    //the iterator function for the entire array
    //return value from the iterator is ignored
  }
  //Some code
});

Note latérale que avec lodash (non souligné) _.forEach _ si vous voulez terminer la "boucle" plus tôt, vous pouvez explicitement return false de la fonction iteratee et lodash mettront fin à la boucle forEach.

131
Peter Lyons

Au lieu de l'instruction continue dans la boucle for, vous pouvez utiliser l'instruction return dans _.each() dans underscore.js. Elle ignorera uniquement l'itération en cours.

12
Vishnu PS
_.each(users, function(u, index) {
  if (u.superUser) {
    //Some code
  }
});
0
pdoherty926