2013-03-13 63 views
0

我可以声明在Javascript多维数组如下:声明多维数组的值true或false

var linkArray = new Array(3); 
linkArray[0][0] = 'boothsize_link'; 
linkArray[0][1] = true; 
linkArray[0][2] = false; 
linkArray[1][0] = 'enkfur_link'; 
linkArray[1][1] = true; 
linkArray[1][2] = false; 
linkArray[2][0] = 'enklight_link'; 
linkArray[2][1] = true; 
linkArray[2][2] = false; 

这是有效的?

回答

2

不,这不是有效的,你必须初始化每个子阵列,以及:

var linkArray = new Array(3); 
linkArray[0] = []; 
linkArray[0][0] = 'boothsize_link'; 
linkArray[0][1] = true; 
linkArray[0][2] = false; 
etc 

在一般情况下,数组的初始化是使用[...]文字写的要容易得多:

var linkArray = [ 
    ['boothsize_link', true, false], 
    ['enkfur_link', true, false], 
    etc 

] 
+0

谢谢您的回答.. – Vamshi 2013-03-13 13:30:52

0

是这有效吗?

是的,这是有效的JavaScript语法(除了错字flase,这将是一个未定义的变量,而不是预期的布尔值)。

它会抛出异常吗?

是的。通过分配一个长度为3到linkArray的新的空数组,不会使项目数组的属性可以分配某些内容。 linkArray[0]undefined,而linkArray[0][0]会引发错误。你会需要调用

linkArray[0] = new Array(3); 

之前,与同为linkArray[1]linkArray[2](最好是在一个循环中完成)。

,或者你只是使用array literals,这是标准的方法来声明数组:

var linkArray = [ 
    ['boothsize_link', true, false], 
    ['enkfur_link', true, flase], 
    ['enklight_link', true, false] 
]; 
+0

谢谢你的答案.. – Vamshi 2013-03-13 13:30:09