var test = [[
[1,2],[2,3],[3,4]
]];
alert(test[[0]].length);
这让我回归3,但我无法理解这究竟是什么意思。怎么会有这个结果?
答案 0 :(得分:2)
JavaScript中没有多维数组。只有嵌套数组。
[ // test
[ // test[0]
[1,2], // test[0][0]
[2,3], // test[0][1]
[3,4] // test[0][2]
] //
] //
如您所见,test[0]
的长度为3。
test[[0]]
在语义上不正确(*)并折叠为test[0]
。
(*)索引运算符([]
)需要一个数字,例如test[0]
。如果您没有向其传递数字(例如您传递数组test[[0]]
的{{1}}情况),则首先会转换为字符串。 (这是因为下面的第一个注释。)
通过使用逗号连接其成员,将数组转换为字符串。 [0]
为[0].toString()
,因此"0"
相当于test[[0]]
,相当于test["0"]
。
注意:
test[0]
与test["length"]
相同。 test.length
这样可怕的东西相当于test[[0]][["length"]])
并会给你test[0].length
。3
之类的内容将是test[[0,0]]
- 由于该数组上没有名为test["0,0"]
的属性,因此您将获得"0,0"
。答案 1 :(得分:0)
数组test[0]
包含三个项目:
因此,length
的结果是3。
数组test
的长度只有一个,因为test
只包含一个数组:
实际上这不是一个多维数组,它只是一个包含数组的数组(称为锯齿状数组或嵌套数组)。
答案 2 :(得分:0)
test [[0]]与test [0]相同,test [0]是数组
[1,2],[2,3],[3,4]
由这些元素组成。
如果要访问,例如[2,3]
,则需要使用以下语法:
test[0][1]
和test[0][1].length
会给你2。
答案 3 :(得分:0)
如果你想获得第一个数组长度的长度,那么写
alert(test[0][0].length);
答案 4 :(得分:0)
这是一个嵌套数组。数组数组。
如果扩展您的示例,将会更清楚:
var test = [
[
[1,2],[2,3],[3,4]
],
[
[5,6],[7,8],[9,9],[6,7]
],
];
alert(test[[1]].length);
现在,您的测试是一个包含两个数组的数组。第一个是3个数组的数组。第二个是4个数组的数组。
现在,test.length
为2. test[0].length
为3. test[1].length
为4. [[n]]
只是崩溃。