Ruptura angular JS para cada uno

Resuelto Chubby Boy asked hace 12 años • 21 respuestas

Tengo un bucle foreach angular y quiero salir del bucle si coincido con un valor. El siguiente código no funciona.

angular.forEach([0,1,2], function(count){
  if(count == 1){
    break;
  }
});

Cómo puedo conseguir esto?

Chubby Boy avatar Dec 12 '12 23:12 Chubby Boy
Aceptado

El angular.forEachbucle no puede romperse si una condición coincide.

Mi consejo personal es utilizar un bucle FOR NATIVO en lugar de angular.forEach.

El bucle FOR NATIVO es alrededor de un 90% más rápido que otros bucles for.

Para rotura de bucle, para resultado de prueba de bucle

UTILICE EL bucle FOR EN ANGULAR:

var numbers = [0, 1, 2, 3, 4, 5];

for (var i = 0, len = numbers.length; i < len; i++) {
  if (numbers[i] === 1) {
    console.log('Loop is going to break.'); 
    break;
  }
  console.log('Loop will continue.');
}
Nishchit avatar Oct 17 '2013 11:10 Nishchit

No hay manera de hacer esto. Consulte https://github.com/angular/angular.js/issues/263 . Dependiendo de lo que estés haciendo, puedes usar un valor booleano para no entrar en el cuerpo del bucle. Algo como:

var keepGoing = true;
angular.forEach([0,1,2], function(count){
  if(keepGoing) {
    if(count == 1){
      keepGoing = false;
    }
  }
});
dnc253 avatar Dec 12 '2012 16:12 dnc253

utilice algunas o todas las instancias de ForEach,

Array.prototype.some:
some is much the same as forEach but it break when the callback returns true

Array.prototype.every:
every is almost identical to some except it's expecting false to break the loop.

Ejemplo para algunos:

var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

ary.some(function (value, index, _ary) {
    console.log(index + ": " + value);
    return value === "JavaScript";
});

Ejemplo para cada:

var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

ary.every(function(value, index, _ary) {
    console.log(index + ": " + value);
    return value.indexOf("Script") > -1;
});

Encuentre más información
http://www.jsnoob.com/2013/11/26/how-to-break-the-foreach/

Neo Vijay avatar Jul 07 '2015 12:07 Neo Vijay