Cómo 'continuar' dentro de cada bucle: subrayado, node.js

80

El código en node.js es bastante simple.

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

Mi pregunta es ¿cómo puedo continuar con el siguiente índice sin ejecutar "Algún código" si superUser está configurado como falso?

PD: Sé que otra condición resolvería el problema. Todavía tengo curiosidad por saber la respuesta.


fuente

Respuestas:

137
_.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
});

Tenga en cuenta que con lodash (no subrayado) _.forEachsi desea terminar el "ciclo" antes, puede return falsehacerlo explícitamente desde la función iteratee y lodash terminará el forEachciclo antes.

Peter Lyons
fuente
¿Por qué esto no es aplicable? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Con Antonakos
6
Porque _.eachy un for () {}bucle regular no son lo mismo.
Peter Lyons
@ConAntonakos Cuando lo usa for-each(collection, callback)en JS, no hay ningún bucle for dentro, callbackpor break/continuelo tanto , no se aplica.
pgpb.padilla
12

En lugar de la continueinstrucción en el bucle for, puede usar la returninstrucción _.each()en el subrayado.js, solo omitirá la iteración actual.

Vishnu PD
fuente
0
_.each(users, function(u, index) {
  if (u.superUser) {
    //Some code
  }
});
pdoherty926
fuente
Lo siento. Debería haber puesto el escenario en detalle. Necesito ejecutar algún código si el superusuario es falso y luego continuar. Habrá otra condición, por ejemplo, si (superUser! = Falso && activado) para lo cual necesito hacer algo más y ejecutar "Algún código" y luego hay otra para la cual necesito ejecutar "Algún código". Solo quería saber si hay una manera de hacerlo sin volver a escribir el mismo código dentro de else if y else. No quiero crear otra función para esto.
1
Estaba preguntando cómo evitar esa muy mala práctica del código de flechas.
David Betz