This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
es:web_development:tables:javascript [2022/03/16 19:07] mag [Configuración] |
es:web_development:tables:javascript [2023/08/16 09:33] (current) |
||
---|---|---|---|
Line 120: | Line 120: | ||
}</ | }</ | ||
* Ahora mueva el bloque 'crear texto de fila' dentro de su nueva función. | * Ahora mueva el bloque 'crear texto de fila' dentro de su nueva función. | ||
- | < | + | < |
statsRow = "< | statsRow = "< | ||
statsRow += "< | statsRow += "< | ||
Line 131: | Line 131: | ||
* En este punto, la función no sabe qué playeres y el código principal no tendrá acceso a statsRow. | * En este punto, la función no sabe qué playeres y el código principal no tendrá acceso a statsRow. | ||
* Agregue playerbetween ()para decirle al código original que necesitamos esta información. | * Agregue playerbetween ()para decirle al código original que necesitamos esta información. | ||
- | * Agregue una nueva línea al final con return statsRow; | + | * Agregue una nueva línea al final con < |
- | < | + | < |
statsRow = "< | statsRow = "< | ||
statsRow += "< | statsRow += "< | ||
Line 146: | Line 146: | ||
* Realmente queremos que nuestro programa funcione con todos nuestros jugadores. Así que tenemos una lista de jugadores, cada uno con una lista de estadísticas. En otras palabras, tenemos una matriz de matrices o una matriz multidimensional. Comencemos con los datos que ya conocemos. | * Realmente queremos que nuestro programa funcione con todos nuestros jugadores. Así que tenemos una lista de jugadores, cada uno con una lista de estadísticas. En otras palabras, tenemos una matriz de matrices o una matriz multidimensional. Comencemos con los datos que ya conocemos. | ||
* Primero, actualicemos nuestra sección ' | * Primero, actualicemos nuestra sección ' | ||
+ | < | ||
+ | [' | ||
+ | [' | ||
+ | ['Juan Guillermo', | ||
+ | [' | ||
+ | ];</ | ||
+ | * Tenga en cuenta que cada línea es un elemento en la lista más grande, por lo que los separamos por < | ||
+ | * El único < | ||
+ | * Entonces estamos diciendo que tenemos una matriz de matrices (lista de listas) llamada < | ||
+ | * Queremos mostrar a cada jugador por turno, por lo que necesitamos datos de ' | ||
+ | < | ||
+ | for (j = 0; j < | ||
+ | |||
+ | }</ | ||
+ | * ¿Recuerdas esto de cuando creaste una lista usando Javascript? Hemos reemplazado ' | ||
+ | * Antes de continuar, verifiquemos que tenemos la información correcta. | ||
+ | * Agregue una línea dentro del bucle for de la siguiente manera. | ||
+ | < | ||
+ | * Esto imprimirá el valor de ' | ||
+ | * Abra su código ' | ||
+ | * Ahora abra sus Herramientas de desarrollador (haga clic en el menú en la parte superior derecha, luego seleccione 'Más herramientas' | ||
+ | * Comprueba que tiene impresos (en verde) los valores del 0 al 3. Si no, mira si puedes averiguar por qué. No dude en pedir ayuda. | ||
+ | * Vayamos un paso más allá y cambiemos < | ||
+ | * Verifique la consola nuevamente (actualice la página si es necesario) y debería ver 4 matrices, cada una con una lista de datos del jugador. Eso nos dice que tenemos los datos correctos listos para usar. | ||
+ | * Ahora, para cada jugador, necesitamos crear statsRow como para un solo jugador. | ||
+ | * Ya tenemos una función que hace esto, así que llamémosla. | ||
+ | < | ||
+ | statsRow = crearTextoFila(jugadores[j]);</ | ||
+ | * Mantuvimos el nombre de la variable ' | ||
+ | * < | ||
+ | * Si revisa la página nuevamente ahora, solo mostrará el último jugador porque estamos sobrescribiendo los datos del jugador cada vez que llamamos a la función (< | ||
+ | * Vamos a mover el bloque de código ' | ||
+ | < | ||
+ | console.log(jugadores[j]); | ||
+ | // crea texto de fila | ||
+ | statsRow = createRowText(jugadores[j]); | ||
+ | |||
+ | // agregar fila a la tabla | ||
+ | tableBody = document.getElementsByTagName(" | ||
+ | newRow = tableBody.insertRow(0); | ||
+ | newRow.innerHTML = statsRow; | ||
+ | }</ | ||
+ | * Ejecute el código ahora y verá que todavía no está del todo bien. Todos los jugadores están listados, pero el orden es al revés. | ||
+ | * Esto se debe a que siempre agregamos la nueva fila en la ranura superior por encima de todo lo demás (< | ||
+ | * Queremos que el número de fila aumente al mismo tiempo que los datos del jugador. | ||
+ | < | ||
+ | * Hay un último cambio que hacer. ' | ||
+ | * Nuestro código final se ve así. | ||
+ | < | ||
+ | // generar datos | ||
+ | jugadores = [ | ||
+ | [' | ||
+ | [' | ||
+ | ['Juan Guillermo', | ||
+ | [' | ||
+ | ]; | ||
+ | |||
+ | tableBody = document.getElementsByTagName(" | ||
+ | |||
+ | // mostrar datos | ||
+ | for (j = 0; j < | ||
+ | // console.log(jugadores[j]); | ||
+ | // crea texto de fila | ||
+ | statsRow = createRowText(jugadores[j]); | ||
+ | |||
+ | // agregar fila a la tabla | ||
+ | newRow = tableBody.insertRow(j); | ||
+ | newRow.innerHTML = statsRow; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | función crearTextoFila(jugador) { | ||
+ | statsRow = "< | ||
+ | statsRow += "< | ||
+ | statsRow += "< | ||
+ | statsRow += "< | ||
+ | statsRow += "< | ||
+ | statsRow += "< | ||
+ | statsRow += "</ | ||
+ | return statsRow; | ||
+ | }</ | ||
+ | * Esto parece mucho más eficiente ahora, pero aún puede pensar que es más fácil crear la tabla en HTML que en Javascript. Está bien. ¿Qué tal si usamos el equipo completo? ¿Te imaginas armar la mesa con 26 jugadores? ¿Qué sucede si está utilizando datos con miles de entradas? Crear la matriz es mucho más fácil. | ||
+ | |||
+ | ==== Final Code ==== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | [[es: | ||