У каждого программиста есть любимый цикл — будь то фруктовый цикл, цикл 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() нам не нужно инициализировать переменные индекса или значения, поскольку они находятся в аргументах функции. Мы также можем использовать меньше кода для выполнения того же результата.
Удачного зацикливания!