2013-02-22 24 views
17

mam krótkiego kodu javascript, gdy trzeba przejść do kolejnego w pętli for .... patrz poniżej:Jak przejść do następnego w javascript w for-in z chwilą w środku?

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... 
    } 
} 

chciał zachować to proste więc składnia może być wolne od błędów.

+0

Może szukasz 'kontynuuj'? https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/continue Nie jestem do końca pewien, co chcesz osiągnąć. Nie używaj też 'for ... in' do iterowania po tablicach. –

+0

Myślę, że chodziło o 'break' o pętlę while i od razu' continue' o pętlę * for *. Jeśli nie ma nic * po * chwili, jak w twojej próbce, możesz po prostu użyć 'break;' –

+0

Możesz oznaczyć wiele rzeczy w JavaScript, w tym pętli. Połącz 'continue' i' break' z etykietami, aby uzyskać niesamowite rezultaty! –

Odpowiedz

35

Nie należy iterować po tablicach przy użyciu for...in. Taka składnia służy do iteracji właściwości obiektu, co nie jest tym, czego szukasz.

chodzi o rzeczywistą pytanie, można użyć continue:

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

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

    console.log(y[i]); 
} 

ten wypisze:

1 
3 
4 

Faktycznie, wygląda tak, jak chcesz, aby wyrwać się z while pętla. Można użyć do tego break:

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

Spójrz na do...while pętli, jak również.

+0

Dziękuję Blender. To naprawdę pomoże. –