Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

246
Visualizações
Javascript Convierta la entrada de Textarea en Array para calcular el total promedio

Estoy tratando de obtener el script para calcular el promedio de los números ingresados en un área de texto. Los números están separados por una coma.

Obtengo un valor de NaN o simplemente no funciona bien.

Este código estuvo más cerca de funcionar realmente. Sin embargo, solo agrega la coma como un elemento nuevo y todos los números se combinan en el primer elemento, dividiendo el número por la cantidad de comas.

 document.querySelector("#input").addEventListener("input", function test() { const strng = document.getElementById("input").value; var arr = strng.split(','); const avg = arr.reduce((a, b) => a + b, 0) / arr.length; document.getElementById("lbl").innerHTML = avg; }); function cycle() { var area = document.getElementById("txt").value; var lines = area.split(','); const average = arr => arr.reduce((a, b) => a + b, 0) / arr.length; document.getElementById("lbl").innerHTML = average([lines]).toFixed(2); } setInterval(cycle, 100)
 <textarea id="input"></textarea> <label id="lbl">Result Here</label> <textarea id="txt"></textarea>

La función cycle() me dio un valor de NaN justo después de ingresar la primera coma en el área de texto.

¿Alguien me puede ayudar?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Cuando divide una cadena de la entrada del usuario, obtiene una matriz de cadenas. Por lo tanto, debe analizar estas cadenas en números y filtrar cualquier valor no numérico antes del cálculo.

 function test() { const inputValue = document.getElementById("input").value; var values = inputValue.split(',').map(v => parseFloat(v)).filter(v => !Number.isNaN(v)); const avg = values.reduce((a, b) => a + b, 0) / values.length; document.getElementById("lbl").innerHTML = (!Number.isNaN(avg)) ? avg : ''; } setInterval(test, 100);
 <textarea id="input"></textarea><br> <label id="lbl">Result Here</label> <textarea id="txt"></textarea>

about 4 years ago · Juan Pablo Isaza Relatório

0

 // access the DOM elements const inpTxt = document.getElementById("input"); const outTxt = document.getElementById("lbl"); // add event listener to text-area "input" event inpTxt.addEventListener("input", () => { // collect the list of comma separated numbers into an array "numList" const numList = inpTxt .value // access the DOM element "inpTxt"'s value attribute .split(',') // ".split()" using "comma" as the seperator .map(Number) // convert each element into a number .filter( // sanity check to remove any non-number data x => !isNaN(x) ); console.log(numList); // to see in real-time the "numList" array on console if (numList.length) { // if there are any valid numbers in the array outTxt.innerText = ( // change the "label"'s innerText numList.reduce( // sum the numbers in the "numList" array (total, num) => total + num, 0 // initialize the "sum" to zero ) / // divide into "numList.length" to compute average numList.length ); } });
 <div> Type comma-separated numbers in below input box and average will be calculated </div> <div><textarea id="input"></textarea></div> <div><label id="lbl">Result Here</label></div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda