Break for loop desde el interior de la caja del interruptor en Javascript

Qué command debo usar para salir del bucle for, también desde //code inside jump directo a //code after

 //code before for(var a in b) { switch(something) { case something: { //code inside break; } } } //code after 

Desafortunadamente, Javascript no permite break múltiples niveles. La forma más fácil de hacerlo es aprovechar el poder de la statement de return creando una function anónima:

 //code before (function () { for (var a in b) { switch (something) { case something: { //code inside return; } } } }()); //code after 

Esto funciona porque return deja la function y, por lo tanto, abandona implícitamente el ciclo, lo que te lleva directamente al code after

use otra variable para marcar cuando necesite salir:

 var keepGoing = true; for (var a in b){ switch (something){ case something: keepGoing = false; break; } if (!keepGoing) break; } 

ejemplo

Puedes usar la label . Tenga una statement labelda y rompa esa label. outerLoop es la label que he usado aquí.

 //code before outerLoop: for (var a in b) { switch (something) { case 'case1': //code inside break outerLoop; } } //code after 

depende de lo que quieras lograr … una cosa que hago comúnmente es algo como esto:

  //code before for(var a in b) { var breakFor = false; switch(something) { case something: { //code inside breakFor = true; break; } } if (breakFor) break; } //code after 

Puede decir qué bucle / interruptor para romper.

 function foo () { dance: for(var k = 0; k < 4; k++){ for(var m = 0; m < 4; m++){ if(m == 2){ break dance; } } } } 

Vea esta respuesta .

Siempre encuentro que usar declaraciones condicionales es una de las forms más fáciles de controlar el flujo de código, al less conceptualmente.

 var done = false; //code before for loop for(var a in b){ switch(switchParameter){ case firstCase: //code inside done = true; break; } } if(done) break; } //code outside of for loop 
 for(var i=0; i<b.length; i++) { switch (something) { case 'something1': i=b.length; } } 

Cuando la variable de iteración i llega al final del ciclo, se rompe. Pero uno puede forzar a la variable de iteración a alcanzar el final del ciclo.

    Intereting Posts