Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda