我有一个二维数组,我正在循环创建一个表。示例:假设我有array[y][x]
. 数组[0][x]
将填充标题列,array[1][x]
将创建第二列,依此类推。y 代表每个类别/行。这有点令人困惑,所以这里有一个图表:
[0][0]Device | [1][0] Device 1 | [2][0] Device 3 | [3][0] Device 1(Duplicate)
--------------------------------------------------------------------------------
[0][1]category1 | [1][1] | [2][1] | [3][1]
--------------------------------------------------------------------------------
[0][2]Category2 | [1][2] | [2][2] | [3][2]
我必须检查每列中[y][1]
的重复项,如果在 处有重复项array[y][1]
,我根本不想打印该列。
我正在使用两个嵌套的 for 循环打印每一列和每一行。
// for every named field, generate a row for each disk
//x represents each table category, which is in rows
for (var x = 0; x < array[0].length; x++) {
// code to print table with field_names[0][x]
for (var y = 1; y < (array.length); y++) {
new_row += "<td>" + [array[y][x]];
}
}
我目前的想法是每次进程到达 array[y][ 1 ] 我需要检查它是否与之前列 [y-1][ 1 ],[y-2][ 1 ],[y -3][ 1 ] 等等,因为我只想打印表格列的第一个实例。所以我基本上是在寻找一种方法来制作一个 for 或 while 循环,这样就不会出现打印狂潮并多次打印我的所有表格。在伪代码中,我需要一些东西:
if array[y][1] == array[i][1] where (i = (y - 1); i > 0; i--)
, 然后不打印该列。
唯一的问题是每次我尝试定义 i 时,它都会将其余代码影响到我要打印很多次的地方,因为一切都是如此嵌套的。请帮忙!非常感谢。