Почему результат равен undefined?

Получите произведение всех чисел в массиве, используя Array.reduce. Не обрабатывайте типы данных, не являющиеся числом.

let array = ["0", 5, 3, "string", null];
let mult = array.reduce((sum, current) => {
  if (typeof(current) == "number") {
    return sum *= current;
  }
}, 1)
console.log(mult);


Ответы (1 шт):

Автор решения: Александр Лесив

Ошибка происходила из-за того, что при значении не числового типа, функция переданная в reduce не возвращала значения явно (а значит возвращала undefined по умолчанию)

let array = ["0", 5, 3, "string", null];
let mult = array.reduce((sum, current) => 
  typeof(current) === "number" ? sum * current: sum, 1
)
console.log(mult);

→ Ссылка