Привет. На сегодняшней теме съедено не мало собак :) Но так или иначе, сегодня про циклы в Javascript. Какие бывают виды, и как их использовать.

Циклы в Javascript: часть 1, for(x;y;z) итерации

Этот тип цикла используется, когда нужно что-то перечислить. При этом вместо x подставляется начальное значение (например i=0;), вместо y ограничение для останова (например i<5;), а вместо z — итератор, который изменяет значение i (например i++).

Все x, y и z могут принимать разные значения и делать разные вещи. Например, начальное значение может быть числом или результатом выполнения какой-либо функции, ограничение может быть любым < > = >= <=, а итератор может модифицировать текущий индекс как ему угодно, даже по сложной формуле.

Пример:

for(i=10; i>1; i=Math.ceil(i/2)){

console.log(i);

}

В этом примере мы получим такой результат:

10, 5, 3, 2 поскольку огарничиваем i быть больше 1, а модифицируем i как окргуление в верх от деления на 2.

Циклы в Javascript: for (a in b) перебор

Этот тип циклов применяется тогда, когда нужно обойти весь массив или объект по каждому из его элементов. В таком случае в a будет подставлен текущий индекс массива при переборе, а в b – нужно будет передать сам массив или объект. Массив может быть как ассоциативным, так и не быть. При этом при ассоциативном массиве в a будет подставлено имя текущего элемента массива, а при не ассоциативном – просто порядковый номер текущего элемента.

Пример:

for(a in b=[1,2,3,4,5]){

console.log(b[a]);

}

или

let b=[1,2,3,4,5];

for(a in b){

console.log(b[a]);

}

Результатом будет набор 1,2,3,4,5, который выведется в результате перебора.

Циклы в Javascript: while до тех пор пока

Этот тип циклов можно использовать для цикличных действий «пока не сработает».

Например:

let i_am_hungry=true;

while(i_am_hungry){

eat();

if(food<=0){

i_am_hungry=false;

}

}

function eat(){

food--;

}

В этом примере, мы выполняем функцию есть до тех пор, пока мы голодны, или пока не закончится еда.

Также есть алтернатива этого цикла do{…}while(условие).

Циклы в Javascript: every перебор

Этот тип циклов предназначен для перебора элементов массивов или объектов.

Используется вот так:

[1,2,3,4,5].every(function(current, index, array){

console.log(current, index, array);

});

В результате получим:

1 0 [1,2,3,4,5]

2 1 [1,2,3,4,5]

3 2 [1,2,3,4,5]

4 3 [1,2,3,4,5]

5 4 [1,2,3,4,5]