Проверяет понимание обязательного возврата значения из callback-функции метода reduce и его влияния на аккумулятор.
Метод Array.prototype.reduce выполняет callback-функцию для каждого элемента массива, передавая ей аккумулятор и текущий элемент. Callback обязан возвращать новое значение аккумулятора, которое будет передано в следующий вызов. Если callback ничего не возвращает (т.е. возвращает undefined), аккумулятор становится undefined, что ломает всю цепочку.
Reduce принимает два аргумента: callback и начальное значение аккумулятора. Callback получает четыре параметра: аккумулятор, текущий элемент, индекс и исходный массив. Возвращаемое значение callback становится новым аккумулятором для следующей итерации. После обработки всех элементов возвращается финальное значение аккумулятора.
const numbers = [1, 2, 3, 4];
// Правильно: возвращаем сумму
const sum = numbers.reduce((acc, curr) => {
return acc + curr;
}, 0);
console.log(sum); // 10
// Ошибка: ничего не возвращаем
const broken = numbers.reduce((acc, curr) => {
acc + curr; // нет return
}, 0);
console.log(broken); // undefinedReduce используется для свёртки массива в одно значение: сумма, произведение, объект, строка и т.д. Также часто применяется для группировки данных или преобразования массива в объект.
Всегда возвращайте новое значение аккумулятора из callback reduce, иначе результат будет undefined. Это основа корректной работы метода.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию