PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Какие циклы в 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.

Другие вопросы раздела