Во второй форме вы используете фигурные скобки {}
в своей функции стрелки, которая не имеет неявного return
. При использовании фигурных скобок вам необходимо явно return
:
const numbers = [2, 5, 3];
const test = numbers.reduce((a, b) => {
return a * b;
}, 0);
console.log(test);
РЕДАКТИРОВАТЬ
Как указывалось в различных комментариях, это устраняет проблему с результатом undefined
, нооно все равно будет 0
, потому что вы присваиваете начальное значение как 0
, а 0
раз, когда все равно 0
. Вы можете просто пропустить это (или заменить его на 1
), чтобы получить произведение всех возвращаемых элементов в массиве:
const numbers = [2, 5, 3];
const test = numbers.reduce((a, b) => {
return a * b;
});
console.log(test);