我正在尝试在JavaScript中设置多维数组,但它返回所有数据的最后一个条目。我期待警报返回444,但它返回555。
有什么想法吗?
function test() {
var arr = [,];
arr[1]="qtest0";
arr[1,0]=444;
arr[2,0]=555;
arr[2]="qtest1";
alert(arr[1]);
alert(arr[1,0]);
}
答案 0 :(得分:6)
本声明:
var arr = [,];
不是否会创建多维数组。它创建一个稀疏数组,其中包含一个空槽。这句话:
arr[1,0]=444;
不是否分配给二维数组索引。相反,表达式1,0
简单地计算为0(这是有点模糊的逗号运算符的工作方式)。因此arr[1,0]
与arr[0]
完全相同。
Javascript本身不支持多维数组。相反,你应该有一个数组,其元素本身就是数组:
var arr = [];
arr[1] = [];
arr[1][0] = 444;
有关多维数组的更多信息,请参阅this question。