テーブルを作成するためにループしている2次元の配列があります。例: 私が を持っているとしましょうarray[y][x]
。配列[0][x]
はヘッダー列に入力array[1][x]
され、2 番目の列が作成されます。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]
その列をまったく印刷したくありません。
ネストされた 2 つの 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 を定義しようとするたびに、すべてがネストされているため、コードの残りの部分に何度も印刷する場所に影響を与えることです。助けてください!ありがとうございました。