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

354
Visualizações
cuál es el error en este código, me está dando NaN

¿Por qué este código me da NaN como salida?

 var rob = function(nums) { var a = 0; var b = 0; for (let i = 0; i < nums.length; i++) { a += nums[i] + nums[i + 2] b += nums[i + 1] + nums[i + 2] } return a }; console.log(rob([1, 2, 3, 1]));

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

0

Recorres los nums de la matriz y luego intentas acceder a sus miembros más allá de su último elemento.

Cuando i es 3 , nums[i+2] se refiere a un elemento inexistente, lo que genera undefined , y cuando agrega un número a undefined , obtiene NaN .

about 4 years ago · Juan Pablo Isaza Relatório

0

Hay cuatro elementos en la matriz [1, 2, 3, 1] . El problema es i+2 .

En la tercera iteración del bucle, intenta acceder a un índice que no existe: nums[i + 2] en la tercera iteración se convierte en nums[2 + 2] , que se convierte en nums[4] . Pero nums[3] es el último elemento, porque la longitud de la matriz es solo 4

about 4 years ago · Juan Pablo Isaza Relatório

0

Cuando i , el índice de la matriz nums está fuera de los límites nums[i] is undefined . Y cuando agrega cualquier undefined a cualquier número o NaN , el resultado es NaN .

Puedes usar nums[i+2] || 0 y nums[i+1] || 0 para evitar tratar con undefined . Si su objetivo es sumar todos los elementos con un índice par, 0,2 ..., y poner el resultado en , a mejor enfoque podría ser el siguiente. Para una matriz más grande, corre el peligro de agregar algunos elementos al resultado más de una vez.

Sin embargo, si ese es su objetivo, puede conservar nums[+2] || 0 y nums[i+1] || 0

 const rob = function(nums) { let a = 0; let b = 0; for (let i = 0; i < nums.length; i = i + 2) { a += nums[i]; b += nums[i+1] || 0; } return a; }; console.log(rob([1, 2, 3, 1]));

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