Tengo 128 caracteres especiales en una matriz. Estoy tratando de crear una tabla de caracteres especiales sin encabezados que tenga 16 celdas de largo y 8 filas y tengo problemas con la lógica de los bucles que estoy creando. Eliminé la parte que está creando la tabla porque no es relevante.
var rowCount = 8; // For each Row for (var r = 0; r < rowCount; r++) { for (var c = (0 + (r * 8)); c < (r * 8) + 16; c++) { console.log(c); } } Entonces, para cada fila, estoy tratando de recorrer 16 elementos de la matriz de 128 caracteres. El primer ciclo que tengo, c imprime 0-15 como esperaba, pero cuando r ingresa a su segunda iteración, c comienza a imprimir desde 8-23, que no es lo que quiero. Estoy tratando de hacer que imprima lo que sigue a la iteración anterior, 16-32, y luego la tercera iteración 33-49 y así sucesivamente.
¿Alguien puede explicarme qué estoy haciendo mal y cómo corregir mi lógica, por favor?
En lugar de hacer cualquiera de los cálculos matemáticos complicados en la declaración de bucle anidado para las columnas, mantenga esa parte simple 0-15 y haga los cálculos después. En última instancia, no importa dónde comience y finalice el ciclo for porque siempre hay las mismas filas y columnas numéricas (ya que las ha declarado estáticamente).
es decir, está tratando de lograr esto en las iteraciones del bucle interno:
for(var c = 0; c < 16; c++){}for(var c = 16; c < 32; c++){}for(far c = 32; c < 48; c++){}El número real en el que comienza y termina el bucle for es arbitrario en última instancia, lo que importa es que puede calcular el número de veces que debe iterar... en este caso, 16 veces para las columnas. Así que 0-16 es todo lo que necesitas.
var rowCount = 8; // For each Row for(var r = 0; r < rowCount; r++){ // opening <tr> for(var c = 0; c < 16; c++){ console.log( (r * 16) + c ); console.log("r" + r + "c" + c); // do <td> stuff } // closing </tr> }Nota: Snippet corta parte del registro anterior de la consola para que no vea el principio, así que aquí hay un violín. https://jsfiddle.net/u7fLdt2w/