forEach(): действие для каждого существующего элемента
ForEach вызывает функцию для каждого существующего элемента массива. Он подходит для последовательных синхронных побочных действий, когда не требуется собрать новый массив результатов.
Назначение
ForEach вызывает функцию для каждого существующего элемента массива. Он подходит для последовательных синхронных побочных действий, когда не требуется собрать новый массив результатов.
Как это работает
Возвращаемое значение callback не становится результатом метода: сам forEach возвращает undefined. Пустые позиции разреженного массива пропускаются. В примере действие записывает строки в отдельный журнал.
Пример
const lessons = ["HTML", "CSS"];
const log = [];
const result = lessons.forEach((title, index) => {
log.push(`${index + 1}. ${title}`);
return title.toLowerCase();
});
console.assert(result === undefined);
console.assert(log.join("|") === "1. HTML|2. CSS");
console.assert(lessons[0] === "HTML");
console.log(log);
Что должно получиться
Журнал содержит две строки, а исходный массив не изменён данным callback. Возвращённые маленькие буквы не собраны в новую коллекцию; для этого обычно нужен map.
Граница применения и частая ошибка
Обычный break внутри callback не прерывает forEach. Метод не ожидает Promise от async-функции, поэтому для последовательных асинхронных операций рассмотрите for…of с await. Изменение массива во время обхода требует отдельного понимания правил.
Самостоятельная проверка
Замените forEach на map и сравните возвращаемое значение. Затем создайте массив с пропущенной позицией и запишите посещённые индексы. Для досрочного поиска выберите find, some или обычный цикл по задаче.
Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.