Какие циклы в JS важны на практике и как их применять?
Основы языка
Важные циклы в JS: `for`, `for...of` (значения итерируемых), `for...in` (ключи объекта), `while`, `do-while`, плюс методы массива (`forEach`, `map`). Применяются по типу данных и задаче.
Циклы и применение
for
Классический со счётчиком:
for (let i = 0; i < n; i++) {}- Когда: известное число итераций, нужен индекс, произвольный шаг,
break/await.
for...of
По значениям итерируемых (массивы, строки, Map, Set):
for (const value of arr) {}- Когда: перебор значений; поддерживает
break/continue/await.
for...in
По ключам объекта:
for (const key in obj) {}- Когда: перебор свойств объекта (осторожно с прототипом; лучше
Object.keys).
while / do-while
По условию:
while (condition) {} // проверка перед
do { } while (condition); // минимум одна итерация- Когда: неизвестное число итераций (обход списка, до условия).
Методы массива (не циклы, но перебор)
- forEach — действие для каждого (нельзя break).
- map/filter/reduce — трансформация/агрегация.
- Когда: функциональный стиль, трансформация данных.
Как выбирать
- Известное число, индекс, break/await → for.
- Значения массива/итерируемого → for...of или map/forEach.
- Ключи объекта → for...in /
Object.entries. - Неизвестное число итераций → while.
- Минимум одна итерация → do-while.
- Трансформация → map/filter/reduce.
Коротко для собеседования
Циклы: for (счётчик, индекс, break/await), for...of (значения итерируемых, поддерживает await), for...in (ключи объекта), while/do-while (по условию, неизвестное число итераций), плюс forEach/map/filter/reduce (перебор/трансформация). Выбор: значения → for...of/map, ключи → for...in/Object.entries, по условию → while.