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

227
Visualizações
Estoy tratando de obtener un resultado de la adición de una matriz de números en Javascript, pero muestra el resultado de Nan

// Quiero agregar una matriz de elementos numéricos pero el resultado muestra a Nan por qué

 let numarr = [5598, 4589 ,25465164] let len = numarr.length; let i, numval = 0; for(i=0; i <= len; i++) { numval += numarr[i]; } document.getElementById("demo").innerHTML = numval;
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Es por el <= in for-loop . Si usa <= , entonces el bucle se ejecutará más allá de la longitud de la matriz e intentará acceder al elemento que no está presente.

Si está intentando acceder al elemento que no está presente, devolverá undefined . La adición de un número undefined le dará NaN

Utilice numarr.length - 1 o i < len

 let numarr = [5598, 4589, 25465164] let len = numarr.length; let i, numval = 0; for (i = 0; i < len; i++) { numval += numarr[i]; } document.getElementById("demo").innerHTML = numval;
 <h1 id="demo"></h1>

Solución alternativa: también puede usar reducir aquí para lograr el mismo resultado

 let numarr = [5598, 4589, 25465164] const numval = numarr.reduce((a, c) => a + c); document.getElementById("demo").innerHTML = numval;
 <h1 id="demo"></h1>

about 4 years ago · Juan Pablo Isaza Relatório

0

Su matriz tiene 3 elementos en los índices 0, 1 y 2. Por lo tanto, sus matrices deben ejecutarse desde 0 hasta array.length - 1 . Si intenta acceder a numarr[3] el valor será undefined . Agregar undefined a un número es NaN , eso significa que no es un número

Debería ser i < len

 let numarr = [5598, 4589, 25465164]; let len = numarr.length; let i, numval = 0; for (i = 0; i < len; i++) { numval += numarr[i]; } document.getElementById("demo").innerHTML = numval;
 <div id="demo"></div>

about 4 years ago · Juan Pablo Isaza Relatório

0

El error que cometió ya se ha señalado en muchas otras respuestas, me gustaría mostrarle una alternativa en JS moderno.

En lugar de usar un bucle for basado en índice, Javascript tiene una función especializada para lo que desea hacer, que se llama Array.prototype.reduce . Se llama una vez para cada elemento de la matriz, agrega su value al accumulator y devuelve el acumulador después de la última iteración. El valor inicial 0 para el acumulador es el segundo parámetro.

 const numarr = [5598, 4589 ,25465164] const sum = numarr.reduce((accumulator, value) => accumulator+value, 0); document.getElementById("demo").innerHTML = sum;
 <div id="demo"></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