Выбор ответа Junior Объекты и массивы обновлено
return внутри forEach
Вопрос
Что выведет код?
[1, 2, 3].forEach((n) => {
if (n === 2) return;
console.log(n);
});
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 1 и 3. return выходит только из текущего вызова колбэка, а forEach продолжает вызывать его для следующих элементов.
Варианты ответа
1и3правильный ответ- Только
1 1,2и3- SyntaxError: return вне функции
Разбор
return выходит только из текущего вызова колбэка, а forEach продолжает вызывать его для следующих элементов. Поэтому пропускается только 2. Прервать forEach нельзя (кроме как бросить исключение). Если нужна остановка, используют for...of с break, либо some/find, которые прекращают обход сами. SyntaxError нет: return находится внутри стрелочной функции.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.