我有一個數組有兩個維度,我循環創建一個表。例如: 假設我有array[y][x]
。數組[0][x]
將填充標題列,array[1][x]
將創建第二列等。 y代表每個類別/行。這是一個有點混亂,所以這裏有一個圖:Javascript:我需要有一個If語句,它有一個條件變量(For循環內If語句?)
[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]];
}
}
我的當前的想法是每一個進程到達陣列[Y] [1]我需要檢查它是否爲先前的列[Y-1] [1],[Y-2的值相匹配的時間] [1],[y-3] [1]等等,因爲我只想打印表格列的第一個實例。所以我基本上在尋找一種方法來製作一個或者一個循環,而這個循環不會在打印狂熱的時候出現,並且多次打印我所有的表格。在僞代碼中,我需要的是:
if array[y][1] == array[i][1] where (i = (y - 1); i > 0; i--)
,然後不打印列。
唯一的問題是每次我嘗試定義i時,它會將其餘的代碼影響到我打印一堆東西的地方,因爲所有東西都是如此嵌套的。請幫忙!並非常感謝你。
爲每一行的屬性都是以前看過的值創建一個對象。然後在顯示列之前檢查屬性是否存在。 – Barmar 2013-02-25 18:52:36
您應該將數組轉換爲基於行的數組。這使得它更具有內存效率,並且您可以輕鬆地[從中刪除重複項](http://stackoverflow.com/q/1960473/1048572) – Bergi 2013-02-25 19:57:03