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

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

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 Denunciar

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 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