Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!