2013-02-22 12 views
17

Ho un breve codice javascript in cui ho bisogno per passare al successivo nel ciclo for .... vedi sotto:Come saltare al prossimo in javascript in un for-in con un po 'di tempo dentro?

var y = new Array ('1', '2', '3', '4'); 
for (var x in y) { 
    callFunctionOne(y[x]); 
    while (condition){ 
     condition = callFunctionTwo(y[x]); 
     //now want to move to the next item so 
     // invoke callFunctionTwo() again... 
    } 
} 

voleva mantenere le cose semplici in modo sintassi può essere esente da errori.

+0

Forse stai cercando 'continue'? https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/continue Non sono abbastanza sicuro di cosa si vuole ottenere. Inoltre, non usare 'for ... in' per iterare su array. –

+0

Penso che intendessero 'break' il ciclo while e immediatamente' continue' il ciclo * for *. Se non c'è niente * dopo * nel frattempo, come nel tuo esempio, potresti semplicemente usare 'break;' –

+0

Puoi etichettare molte cose in JavaScript, inclusi i loop. Combina 'continue' e' break' con etichette per risultati sorprendenti! –

risposta

35

Non iterare su array utilizzando for...in. Quella sintassi è per iterare sulle proprietà di un oggetto, che non è quello che stai cercando.

Per quanto riguarda la tua domanda attuale, è possibile utilizzare il continue:

var y = [1, 2, 3, 4]; 

for (var i = 0; i < y.length; i++) { 
    if (y[i] == 2) { 
     continue; 
    } 

    console.log(y[i]); 
} 

questo stampa:

1 
3 
4 

In realtà, sembra che si vuole spezzare il while ciclo continuo. È possibile utilizzare break per questo:

while (condition){ 
    condition = callFunctionTwo(y[x]); 
    break; 
} 

Date un'occhiata a do...while loop pure.

+0

Grazie Blender. Questo in realtà aiuterà. –