Javascript数组返回所有的最后一个条目

1 javascript multidimensional-array

我试图在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]);
}
Run Code Online (Sandbox Code Playgroud)

Tho*_*ith 6

这个说法:

var arr = [,];
Run Code Online (Sandbox Code Playgroud)

难道不是创建一个多维数组.它创建一个稀疏数组,其中包含一个空槽.而这句话:

arr[1,0]=444;
Run Code Online (Sandbox Code Playgroud)

没有分配给一个二维阵列的索引.相反,表达式1,0简单地计算为0(这是有点模糊的逗号运算符的工作方式).所以arr[1,0]完全一样arr[0].

Javascript本身不支持多维数组.相反,你应该有一个数组,其元素本身就是数组:

var arr = [];
arr[1] = [];
arr[1][0] = 444;
Run Code Online (Sandbox Code Playgroud)

有关多维数组的更多信息,请参阅此问题.