0

我可以在 Javascript 中声明一个多维数组,如下所示:

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;

这是有效的吗?

4

2 回答 2

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

]
于 2013-03-13T13:16:32.220 回答
0

这是有效的吗?

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

它会抛出异常吗?

是的。通过分配一个长度为 3 的新的空数组,linkArray不会使您可以为其分配某些属性的项数组。linkArray[0]undefined,并且linkArray[0][0]会抛出错误。你需要打电话

linkArray[0] = new Array(3);

之前,和相同的 for linkArray[1]and linkArray[2](最好在循环中完成)。

或者您只使用数组文字,这是声明数组的标准方法:

var linkArray = [
    ['boothsize_link', true, false],
    ['enkfur_link',    true, flase],
    ['enklight_link',  true, false]
];
于 2013-03-13T13:17:30.617 回答