У каждого программиста есть любимый цикл — будь то фруктовый цикл, цикл forEach() или цикл for! Давайте сегодня углубимся в циклы forEach().

Представляем метод forEach():

Метод forEach() позволяет вызывать функцию один раз для каждого элемента массива. Этот метод:

  • не имеет встроенного возвращаемого значения — возвращает undefined
  • ничего не сохраняет в памяти
  • работает только с синхронными функциями

Синтаксис и вызовы методов:

Функция forEach имеет три параметра — требуется только один:

  • Значение: (обязательно) Текущий элемент, который обрабатывается в нашем массиве.
  • Индекс: (необязательно) Индекс текущего элемента массива.
  • Массив: (необязательно) Полный массив, для которого вызывается метод.

Давайте посмотрим на это в действии:

array.forEach(function(value, index, array) {

console.log(value);

});

Допустим, у нас есть массив чисел, которые мы хотим умножить на пять:

const numbers = [65, 44, 12, 4];

Как мы можем использовать forEach() для перебора массива? Есть несколько способов сделать это. Все три приведенных ниже примера получат одинаковые результаты:

Пример анонимной функции:

numbers.forEach(function(number){
console.log(number*5)
})

Пример функции стрелки:

numbers.forEach((number) => {
console.log(number*5)
})

Пример функции обратного вызова:

function multiplier(number) {
console.log(number*5)
}
numbers.forEach(multiplier);

forEach() и цикл for:

Мы также можем выполнить описанные выше циклы forEach() с помощью цикла for — давайте проверим функцию, эквивалентную циклу for:

for (let i=0; i<numbers.length; i++) {
console.log(numbers[i]*5)
}

Итак, когда мы должны использовать цикл for вместо forEach()?

Если мы знаем, сколько элементов в массиве или количество итераций, которые мы хотим выполнить через массив, мы должны использовать цикл for. С forEach() нам не нужно инициализировать переменные индекса или значения, поскольку они находятся в аргументах функции. Мы также можем использовать меньше кода для выполнения того же результата.

Удачного зацикливания!