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

450
Visualizações
¿Cómo escribo el código js para imprimir el número de serie, los números impares y los números pares del 1 al 100 en forma tabular?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <table id="myTable"> <thead> <tr> <th>S/N</th> <th>Odd</th> <th>Even</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> <script> var insertNewRow = function(even, odd){ var tableRef = document.getElementById('myTable').getElementsByTagName('tbody')[0]; var newRow = tableRef.insertRow(tableRef.rows.length); var serialNum = newRow.insertCell(0); var evenCell = newRow.insertCell(0); var oddCell = newRow.insertCell(0); var serialNumber = document.createTextNode(i); var evenNumber = document.createTextNode(i); var OddNumber = document.createTextNode(j); serialNum.appendChild(serialNumber); evenCell.appendChild(evenNumber); oddCell.appendChild(OddNumber); } for(i = 1 ; i <= 100 ; i ++){ if(i % 2 == 0){ var j = i -1; insertNewRow( i, i, j) } } </script> </body> </html> 
PRODUCCIÓN
S/N Incluso
:-------- -------:
1 2
2 4
3 6
4 8
5 10
6 12
7 14
8 dieciséis
9 18
10 20

Lo anterior es solo un ejemplo de cómo debería verse la salida usando 1 - 20 como un caso de estudio. La salida debe estar en este orden anterior pero de 1 a 100.

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

0

Aunque es bastante extenso, su código funcionará con algunos cambios:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <table id="myTable"> <thead> <tr> <th>S/N</th> <th>Odd</th> <th>Even</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> <script> var insertNewRow = function(i,odd,even){ var tableRef = document.getElementById('myTable').getElementsByTagName('tbody')[0]; var newRow = tableRef.insertRow(tableRef.rows.length); var oddCell = newRow.insertCell(0); var evenCell = newRow.insertCell(0); var serialNum = newRow.insertCell(0); var serialNumber = document.createTextNode(i); var evenNumber = document.createTextNode(even); var OddNumber = document.createTextNode(odd); serialNum.appendChild(serialNumber); oddCell.appendChild(OddNumber); evenCell.appendChild(evenNumber); } for(let i = 1 ; i <= 100 ; i ++){ if(i % 2 == 0){ var j = i -1; insertNewRow( i, i, j) } } </script> </body> </html>

Principales cambios:

  • Me aseguré de que su función acepte tres en lugar de solo dos argumentos: insertNewRow = function(i,odd,even){...}
  • dentro de la función solo uso los parámetros pasados y no algunas variables globales inciertas (como i y j antes)
  • Invertí el orden de sus newRow.insertCell(0) .

Una versión más corta del script podría verse así:

 for (var arr=[],i=1;i<100;i+=2) arr.push(`<tr><td>${i}:</td><td>${i}</td><td>${i+1}</td></tr>`); document.querySelector("tbody").innerHTML=arr.join("\n");
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <table id="myTable"> <thead> <tr> <th>S/N</th> <th>Odd</th> <th>Even</th> </tr> </thead> <tbody> </tbody> </table>

about 4 years ago · Juan Pablo Isaza Relatório

0

El problema en tu código es que:

  • La función insertNewRow espera dos argumentos, pero la llama con tres
  • El número de serie tiene el mismo valor ( i ) que el número de fila par (también i ), mientras que el número de serie debe ser un número diferente, ... el número de la fila en la tabla de salida.
  • Hay una fila vacía en el HTML inicial que nunca se completa. Simplemente elimine eso del HTML inicial
  • Aparentemente, desea generar 100 filas en su tabla, pero su código solo crea 50 filas nuevas.

Algunas otras observaciones:

  • No es necesario pasar un argumento al método insertRow : el valor predeterminado es que la fila se agrega al final
  • De manera similar, puede llamar al método insertCell en orden de izquierda a derecha y omitir el argumento
  • En lugar de crear nodos de texto, simplemente puede asignar el texto a la propiedad textContent del nodo td . De esa manera, ni siquiera necesita una asignación de variable para dicho nodo.
  • Con querySelector puede seleccionar el elemento tbody con una llamada de método.
  • No es necesario seleccionar este elemento tbody para cada fila; siempre será el mismo elemento, así que solo selecciónelo una vez.
  • En lugar de omitir las iteraciones que corresponden a un número impar, simplifique la lógica del bucle principal e inserte una fila en cada iteración, pero utilizando el valor de la iteración para el número de serie, el doble para la columna par y uno menos para la impar . columna.

Esto conduce al siguiente código:

 let tableRef = document.querySelector('#myTable > tbody'); for (let rowNumber = 1 ; rowNumber <= 100; rowNumber++) { let newRow = tableRef.insertRow(); newRow.insertCell().textContent = rowNumber; // serial newRow.insertCell().textContent = rowNumber * 2 - 1; // odd newRow.insertCell().textContent = rowNumber * 2; // even }
 table { border-collapse: collapse } td, th { border: 1px solid; text-align: right} td:nth-child(2) { background: pink } td:last-child { background: lightblue }
 <table id="myTable"> <thead> <tr> <th>S/N</th> <th>Odd</th> <th>Even</th> </tr> </thead> <tbody> </tbody> </table>

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