JS: перебор массива

5 минут на чтение

Данная задача имеет множество решений: в JS есть метод для перебора массива forEach, проверки every, фильтрации массива filter, трансформации массива map, последовательной обработки reduce. Кроме перечисленных методов для этих целей также можно использовать циклы.  Рассмотрим наиболее удобные методы для перебора массива.

forEach

Метод перебирает массив и применяет функцию callbackFunction для каждого элемента массива.

  • arr – перебираемый массив,
  • currentVal – значение текущего элемента перебираемого массива,
  • index – индекс текущего элемента перебираемого массива (необязательный параметр),
  • array – ссылка на перебираемый массив(необязательный параметр)
  • this – указывается, что использовать в качестве this при вызове callback функции(необязательный параметр)

Метод forEach возвращает Undefined.

Его основное назначение – преобразование массива.

map

Метод также перебирает массив, вызывая callbackFunction для каждого элемента.

  • newArr – новый массив, содержащий результаты применения callback функции  к каждому элементу массива,
  • arr – перебираемый массив,
  • currentVal – значение текущего элемента перебираемого массива,
  • index – индекс текущего элемента перебираемого массива (необязательный параметр),
  • array – ссылка на перебираемый массив(необязательный параметр)
  • this – указывается, что использовать в качестве this при вызове callback функции(необязательный параметр)

Основное отличие данного метода от предыдущего то, что результатом выполнения является массив результатов вызова функции callback.

Основное назначение метода – получение нового преобразованного массива.

filter / every / some

Часто переборка массива требуется с целью выборки или фильтрации элементов. Для этих целей в JS используются методы filter, every, some.

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

Они имеют схожий синтаксис и одинаковый набор параметров:

  • newArr, checkArr, checkSomeArr – новый массив, содержащий результаты применения callback функции  к каждому элементу массива,
  • arr – перебираемый массив,
  • currentVal – значение текущего элемента перебираемого массива,
  • index – индекс текущего элемента перебираемого массива (необязательный параметр),
  • array – ссылка на перебираемый массив(необязательный параметр)
  • this – указывается, что использовать в качестве this при вызове callback функции(необязательный параметр)

Различие данных методов состоит в возвращаемом значении:

  • filter – возвращает массив, содержащий элементы входного массива, для которых callback функция возвратит true,
  • every – возвращает true, если callback функция возвратит true для всех элементов  входного массива,
  • some – возвращает true, если callback функция возвратит true хотя бы для одного элемента входного массива.

reduce

Данный метод предназначен не для перебора. Используется для вычисления определенного значения на основе входного массива. Применяет функцию callback для каждого элемента входного массива с сохранением промежуточного результата. Возвращает результат последнего выполнения callback функции.

  • arr – преобразуемый массив,
  • accumulator – содержит результат предыдущего выполнения callback функции,
  • currentVal – значение текущего элемента перебираемого массива,
  • index – индекс текущего элемента перебираемого массива (необязательный параметр),
  • array – ссылка на перебираемый массив(необязательный параметр)
  • initVal – объект, который используется в качестве первого аргумента (вместо аккумулятора) при первом выполнении функции callback  (необязательный параметр)
Facebook Vk Ok Twitter Telegram