2016-02-11 36 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 />'); 
}