Juan José Beltrán
PreguntaHola compañeros, tengo una pregunta, les pongo en contexto:
Estoy intentando recibir valores de un input en forma de arreglo para poder hacer el cálculo del promedio. Pude solucionar el problema del arreglo, y hacer que se guardaran en una variable. Pero, al momento de hacer el cálculo me hace una operación muy diferente a la de un promedio. Hice la función como se muestra en clase pero, al parecer estoy haciendo algo mal. Agradecería mucho su ayuda!
Les dejo mi código:
Html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Promedio</title> </head> <body> <h1>Promedio</h1> <section> <form action=""> <label for="">Ingresa uno por uno los datos</label> <input type="number" id="inputDatos" placeholder=""> <button type="reset" onclick="ingresarValor()"> Agregar </button> <br> <!-- Promediar --> <button type="button" id="botonCalcular" onclick="onCLickBotonPromedio()"> Calcular Promedio </button> <!-- Texto a aparecer --> <p class="resultadoParrafo"></p> </form> </section> <script src="./promedio.js"></script> </body> </html>
JS
const arreglo = []; // Función para calcular el promedio function obtenerPromedio(arreglo = []) { let sumar = arreglo.reduce( function (sumaTotal, numero) { return sumaTotal + numero } ); const promedio = sumar / arreglo.length; return promedio.toFixed(2); } // Obtener los datos de array const input = document.getElementById("inputDatos"); function ingresarValor() { const nuevoValor = input.value; arreglo.push(nuevoValor); } function onCLickBotonPromedio() { const promedio = obtenerPromedio(arreglo); alert("el promedio es: " + promedio); }

Jossie Steeven Quintero Giron
Puedes ir visualizando los valor que vas agregando!
<ul id="listElement"></ul>
const onClickAddElement = () => { const inputElement = document.getElementById("inputElement"); const listElement = document.getElementById("listElement"); let element = parseInt(inputElement.value); inputElement.value = ""; list.push(element); listElement.innerHTML += `<li>${element}</li>`; };```
Juan José Beltrán
Muchísimas gracias!

Pablo Antipan Quiñenao
Hola! Faltaba pasar el input a integer/float
const arreglo = []; // Función para calcular el promedio function obtenerPromedio(arreglo = []) { let sumar = arreglo.reduce(function (sumaTotal, numero) { return sumaTotal + numero; }); // console.log("sumar:", sumar); const promedio = sumar / arreglo.length; return promedio.toFixed(2); } // Obtener los datos de array const input = document.getElementById("inputDatos"); function ingresarValor() { const nuevoValor = input.value; arreglo.push(parseFloat(nuevoValor)); console.log("arreglo:", arreglo); } function onCLickBotonPromedio() { const promedio = obtenerPromedio(arreglo); alert("el promedio es: " + promedio); }
Saludos!