2016-02-11 37 views
1

我想初始化並使用javascript打印二維數組的元素。 我寫了這段代碼,但沒有顯示任何輸出。如何輸出這個數組?初始化javascript中的二維數組元素

var m = 6; 
var n = 3; 
var mat = new Array[m][n]; 

for (i = 0; i < mat.length; i++) { 
    for (j = 0; j < mat[i].length; j++) { 
    mat[i][j]) = i * j; 
    document.writeln(mat[i][j]); 
    } 
    document.writeln("<br />"); 
} 
+1

請注意,不需要使用其維度初始化數組。你可以做'var mat = [];'並且仍然得到你想要的結果,只要你相應地改變你的循環 – Brennan

回答

1

<html> 
 
    <body> 
 
    </body> 
 
    <script> 
 
     var m=6; 
 
     var n=3; 
 
     var mat =new Array(m); 
 

 
     for(var i=0; i < m ; i++){ 
 

 
      mat[i] = new Array(n); 
 

 
      for(var j=0;j< n ;j++){ 
 
       mat[i][j] = i*j; 
 
       document.writeln(mat[i][j]); 
 
      } 
 

 
      document.writeln("<br />"); 
 
     } 
 
    </script> 
 
</html> 
 

+0

謝謝!它真的起作用了! – Doen

+0

@Doen不客氣。這是[如何在JavaScript中創建二維數組]的好習慣(http://stackoverflow.com/a/966239/2802809) –

1

由於崩指出的那樣,你有一個額外的)但你也不能正確初始化您的數組。 Javascript不允許你像其他語言一樣聲明多維數組。取而代之的是,你必須做更多的事情是這樣的:

var m = 6; 
var n = 3; 
var mat = new Array(m); 
for (var i = 0; i < m; i++) { 
    mat[i] = new Array(n); 
} 
0

JavaScript數組是動態的。它們會增長到您需要的大小。您可以撥打push()將新元素添加到陣列中。同樣值得注意的是,您應該避免在對象和數組中使用new關鍵字。對於陣列,使用它們的文字符號[],對於對象使用{}。因此,這裏更好的解決方案是在您需要的時候推送到陣列。

var mat = []; 
var m = 6; 
var n = 3; 
for (var i = 0; i < m; i++) { 
    // Let's add an empty array to our main array 
    mat.push([]); 
    for (var j = 0; j < n; j++) { 
    mat[i].push(i * j); 
    document.writeln(i * j); 
    } 
    document.writeln('<br />'); 
}