Estoy tratando de pasar el total de una matriz a través de un registro de consola. Sin embargo, en lugar de agregar los números, devuelve la matriz con un 0 al frente.
Esto es lo que he probado
const sum2 = (array) => { let total = 0; const totalFigure = array.reduce((total, number) => {}, 0) return total + array } console.log(sum2([1, 3, 5, 7, 9]));Como no está haciendo nada para reducir su matriz en esa función
(total, number) => {}y su valor inicial es 0, solo está agregando 0 a su matriz al devolver
total + array Nunca estás resumiendo tu matriz. total + array se convierte en 0 + array.toString() que crea el 01,3,5,7,9 que está viendo.
Si desea resumir los valores de su matriz, este es un enfoque:
const sum2 = (array) => array.reduce((total, number) => total+=number, 0) console.log(sum2([1, 3, 5, 7, 9])); (total, number) => total+=number esto incrementa el valor inicial (en el que se establece primero el total ) por number , sumándolos y devolviéndolos a la siguiente iteración de la función de reducción
Array.prototype.reduce() acepta la función de devolución de llamada donde el primer parámetro de la devolución de llamada es el valor "total" calculado en la iteración anterior del bucle y el valor actual de la iteración como segundo parámetro. El código final podría verse así:
const sum2 = arr => { const result = arr.reduce((total, number) => { return total + number; }, 0); return result; };Y más corto:
const sum2 = arr => arr.reduce((total, number) => total + number, 0);