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

252
Visualizações
Javascript "document.write" confusión

Soy nuevo en JavaScript y es posible que haya hecho una pregunta tonta ... Pero el resultado devuelto por el código a continuación me confundió mucho. No estoy seguro de por qué solo la primera oración muestra el valor de i y estaba en el último número de 3.

También estoy confundido cuando se ejecuta el código document.write('<h1>' + i + msg + '<h1>') , ¿por qué no escribió simplemente el valor agregado de la variable 'msg'? El valor de msg no se eliminó y debería contener tanto el primer como el segundo valor pasados, ¿no es así? Esto me parece un poco confuso ya que llegué con algunos conocimientos de Python y no funcionó de la misma manera.

 var scores = [24, 32, 47]; var scores = [24, 32, 47]; var scores = [24, 32, 47]; var arrayLength = scores.length; var roundNumber = 0; var msg = ''; var i; for (i = 0; i < arrayLength; i++) { roundNumber = i + 1; msg += ' Round ' + roundNumber + ': '; msg += scores[i] + '<br>'; } document.write('<h1>' + i + msg + '<h1>')

Resultado devuelto por el html:

 3 Round 1: 24 Round 2: 32 Round 3: 47

Mi resultado esperado:

 0 Round 1: 24 1 Round 2: 32 2 Round 3: 47
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Solo necesita agregar la i al mensaje en el ciclo en lugar de después, como:

 var scores = [24, 32, 47]; var arrayLength = scores.length; var roundNumber = 0; var msg = ''; var i; for (i = 0; i < arrayLength; i++) { roundNumber = i + 1; msg += i +' Round ' + roundNumber + ': '; msg += scores[i] + '<br>'; } document.write('<h1>' + msg + '<h1>')

about 4 years ago · Juan Pablo Isaza Relatório

0

Usted emite i solo una vez. Es por eso que solo ve el último valor.

Debe agregarlo a msg dentro del bucle.

 var scores = [24, 32, 47]; var scores = [24, 32, 47]; var scores = [24, 32, 47]; var arrayLength = scores.length; var roundNumber = 0; var msg = ''; var i; for (i = 0; i < arrayLength; i++) { roundNumber = i + 1; msg += i + ' Round ' + roundNumber + ': '; msg += scores[i] + '<br>'; } document.write('<h1>' + msg + '<h1>')

about 4 years ago · Juan Pablo Isaza Relatório

0

document.write se ejecuta después del final del bucle.

Muestra todo el contenido agregado de msg . Ese no es el problema.

Lo que va mal es el uso de i : solo lo usa una vez en la salida, después de que finaliza el ciclo. Por lo tanto, lo que ve solo tendrá el valor final que tenía cuando finalizó el ciclo, por lo tanto, muestra 3 y lo hace solo una vez.

A diferencia de msg , que está agregando cada vez que se ejecuta el ciclo (porque += agrega contenido nuevo a la variable existente), el valor de i se sobrescribe con un nuevo valor cada vez que se ejecuta el ciclo (eso es lo que hace i++ en la sintaxis for ).

Para que haga lo que desea, simplemente necesita incorporar el valor i en msg a medida que avanza.

 var scores = [24, 32, 47]; var msg = ''; for (let i = 0; i < scores.length; i++) { msg += i + ' Round ' + (i+1) + ': ' + scores[i] + '<br>'; } document.write('<h1>' + msg + '<h1>')

PD: también simplifiqué un poco el código: no está claro por qué declaró la misma matriz de scores 3 veces con el mismo valor, y arrayLength y roundNumber no necesitan existir como variables separadas, y ciertamente no como variables que tienen alcance fuera del ciclo. i necesito un alcance fuera del bucle.

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