Quería crear una función que calculara el promedio entre algunos números. Quería hacer que pudiera poner tantos números como quisiera en el archivo console.log, pero aparentemente este código no funciona, cuando en el archivo console.log dice "infinito". necesito ayuda por favor
function avg(...args){ return args.reduce(function (a, b) { return a + b / avg.length }) } console.log(avg(1, 2, 3, 4, 5))Puede usar reducir y la longitud de los argumentos como este. Tuviste algunos errores en tu código.
const average = (...args) => args.reduce((a, b) => a + b) / args.length; console.log(average(1,2,3,4))Esto se debe a que la variable avg no existe y su valor predeterminado es 0, lo que hace que sea Infinity .
También tienes 2 errores adicionales.
No ha usado paréntesis, esencialmente está haciendo a + ( b / len ) que conducirá a una respuesta incorrecta
Está utilizando una fórmula incorrecta para el promedio, en la implementación que está utilizando, debe usar la fórmula del promedio móvil: consulte aquí: ¿Cómo calcular el promedio móvil sin mantener el recuento y el total de datos?
esta sería la solución correcta:
function avg(...args) { const sum = args.reduce((a,b) => a + b , 0 ); return sum / args.length; }