JS for...of и for...in



Оба оператора, и for...in и for...of производят обход объектов. Разница лишь в том, как они это делают.



Оператор for...of выполняет обход по элементам коллекций, вызывая на каждом шаге итерации значение, а не ключ.

Для массивов работает аналогично forEach, но имеет преимущества: возможность использовать continue и break для контроля итераций.

 let arr = [10, 20, 30];



for (let value of arr) {

value += 1;

console.log(value);

}

// 11 21 31



Цикл for...in проходит по каждому отдельному элементу, вызывая на каждом шаге ключ. Цикл for...in проходит по свойствам в произвольном порядке, поэтому его не следует использовать для массивов.

 var obj = {a:1, b:2, c:3};



for (var prop in obj) {

console.log(obj[prop]);

}



// 1 2 3