Найти в Дзене
JS

JS: Разница между методом ForEach и циклом for (в контексте массивов)

Оба предназначены для перебора массивов и коллекций. For - перебирает элементы, пока не сработает условие. For быстрее, чем ForEach. Аргументы у for следующие: Цикл for работает с ключевым словом await. For можно прервать. ForEach - перебирает элементы массива и для каждого вызывает колбэк функцию со следующими аргументами: ForEach не работает с ключевым словом await. ForEach принимает только синхронные функции. ForEach не вызовет колбэк, если айтем в массиве пустой (метод просто пропустит этот айтем, как будто его не существует). ForEach всегда возвращает undefined. ForEach может работать некорректно на коллекциях. Если в массивоподобном объекте есть свойство length, forEach воспримет его как длину коллекции. Foreach невозможно прервать: он пройдётся по всем элементам всё равно. Codepen Когда FOR Когда ForEach Документация
Оглавление

Оба предназначены для перебора массивов и коллекций.

For - перебирает элементы, пока не сработает условие. For быстрее, чем ForEach. Аргументы у for следующие:

  • переменная-счётчик (опционально; можно использовать два разных счётчика)
  • условие (опционально)
  • инкремент (опционально)

Цикл for работает с ключевым словом await.

For можно прервать.

ForEach - перебирает элементы массива и для каждого вызывает колбэк функцию со следующими аргументами:

  • айтем (обязательный аргумент)
  • индекс айтема (опционально)
  • массив, к которому применён метод (опционально)

ForEach не работает с ключевым словом await. ForEach принимает только синхронные функции.

ForEach не вызовет колбэк, если айтем в массиве пустой (метод просто пропустит этот айтем, как будто его не существует).

ForEach всегда возвращает undefined.

ForEach может работать некорректно на коллекциях. Если в массивоподобном объекте есть свойство length, forEach воспримет его как длину коллекции.

Foreach невозможно прервать: он пройдётся по всем элементам всё равно.

Codepen

Когда FOR

  • при алгоритмических операциях, когда не нужно проходиться по всему массиву, а нужно остановиться на каком-то элементе и прервать выполнение программы

Когда ForEach

  • когда нужно пройтись по всем элементам массива и не нужно прерывать перебор

Документация