2016-06-04 4 views
0

Я пытаюсь с нескольких дней создавать паттерна javascript.Javascript setTimeout на две петли

я разобрать multidimentionnal массив с «ап для цикла», который содержит х и у позиции, как это:

array[1][x] 
array[1][y] 

array[2][x] 
array[2][y] 

ect... 

я не знаю, длина пользовательского нажимной х и у числа в массиве и в конец активируется, затем Длина массива фиксированная. каждые секунды я хочу увеличить или уменьшить x и y для одного числа в конце array.length, я хочу rebegin для анализа массива, функция синтаксического анализа останавливается, когда массив [1] [x] == stopX & & массив [ 1] [y] == stopY.

Я тестировал различные подходы. У меня есть ошибка и бесконечные циклы.

// i know stopX and stopY they are numbers and never change. 
    var stopX = 25; 
    var stopy = 49; 
//i wish an condition to stop the script as this : 
    while(array[i][x] != stopX && array[i][y] != stopY){ 

    for(i = 1 ; i < array.length; i++){ 
    (function(){ 
    var j = i; 
     setTimeout(function(){ 
//here differents "if(){" to increase or decrease array[i][x] and array[i][y]; 
      array[i][x] += 1; 
      array[i][y] += 1; 
     }, j*1000); 
     } 
    } 
} 

мне нужно «а число» как это делать «ш * J * 1000» я не понять эту концепцию, я не понимаю полностью полезность закрытия я, но это работало лучше, я думаю, Мне нужно второе закрытие, но где и как я могу настроить это?

+0

поэтому каждые 1 секунду, что вы хотите добиться от функции (извините, что запись запутанна), вы продвигаетесь на 1 шаг в массив и добавляете 1 к x и y в массиве каждую секунду, что если массив не имеет этой длины – user2950720

+1

Разве вы не используете 'j' внутри закрытия? Единственный случай, когда вы используете 'j', имеет то же значение, что и' i'. – Oriol

+0

Да, я продвигаю 1-й шаг в секунду в массиве до конца массива, если массив [1] [x] == stopX && array [1] [y] == stopY остановка цикла. if array [1] [x]! == stopX &&! array [1] [y] == stopY цикл для разбора массива rebeginning, чтобы добавить 1 до тех пор, пока не будет соответствовать числу stepX. –

ответ

0

В конце я заменяю «while loop» на setinterval + setTimeout + clearInterval.

Смежные вопросы