2014-09-30 54 views
-1

我試圖讓這個2D陣列寫入我的網頁。它確實將它寫在我的網頁上,但不是在我的JavaScript文件中的var之類的下方,我做錯了什麼?我需要改變的東西在我的循環,因爲某些原因,如果這裏不能工作enter image description here2d陣列不會<br>在javascript

var zaal1 = 

[ 

[0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, 
    0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0, 
    0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0, 
    0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0, 
    0,0,0,1,1,1,1,2,2,2,2,2,2,3,3,3,3,2,2,2,2,2,2,1,1,1,1,0,0,0, 
    0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0,0, 
    0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0, 
    0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0, 
    0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0, 
    0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0, 
    0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0, 
    0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,0, 
    0,1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1,0, 
    0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0, 
    0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,0, 
    0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,0,0, 
    0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0, 
    0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 
    0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, 
    0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0] 
    ] 


for (var i = 0; i < zaal1.length; i++) { 

    for (var j = 0; j < zaal1[i].length; j++) { 
    document.write(zaal1); 

    } 

    if ((j + 1) % 30 == 0) 
     document.write("<br />"); 
} 
+0

我想你可能誤解了二維數組的概念。數組中的每個「行」不應該是它自己的子數組嗎?就像現在你有一個「一個大號」2D陣列一樣。 – Biffen 2014-09-30 19:17:48

+0

@Biffen我已經將它改爲:[0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0,0,0], [0,0,0,1,1,1,1,1,1,2,2,2,2,2 ,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0], [0,0,0,1,1,1,1, 1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0] ty anyways – Lozeputten 2014-09-30 21:49:39

回答

1

兩件事情。

首先是您正在爲網頁寫入完整的zaal1變量,而不是通過ij創建的偏移量。

第二個問題是您輸入<br />if語句不在基於j的內循環之外。嘗試像這樣移動它:

for (var i = 0; i < zaal1.length; i++) { 

    for (var j = 0; j < zaal1[i].length; j++) { 
     document.write(zaal1[i][j]); 

     if ((j + 1) % 30 == 0) { 
      document.write("<br />"); 
     } 
    } 

} 

但是,這只是基於你想在每一行上有30個值的想法。它可能會更有意義,你的陣列分解成各行:

var zaal1 = [ 
    [0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0], 
    [0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0], 
    [0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,0] 
]; 

for (var i = 0; i < zaal1.length; i++) { 
    for (var j = 0; j < zaal1[i].length; j++) { 
     document.write(zaal1[i][j]); 
    } 
    document.write('<br />'); 
} 
+0

Yes這是有效的,但它會重複整個數組很多次,我試圖只獲得它1次(就像它在說明中的JavaScript)。你有什麼主意嗎? – Lozeputten 2014-09-30 19:20:42

+1

你需要修復'document.write',只輸出'zaal1 [i] [j]' - 看到我的回答如下... – DerVO 2014-09-30 19:22:10

+0

非常感謝,我剛剛開始JavaScript,所以我仍在學習,試圖讓現在完成4個小時! – Lozeputten 2014-09-30 19:23:32

1

<br />條件必須是內環內和document.write整個陣列,而不是隻有一個值輸出:

for (var i = 0; i < zaal1.length; i++) { 
    for (var j = 0; j < zaal1[i].length; j++) { 
     document.write(zaal1[i][j]); // only output one number 
     if ((j + 1) % 30 == 0) document.write("<br />"); // put this inside your inner loop 
    } 
}