我试图在 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]);
}
最佳答案
这个声明:
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 .
关于Javascript 数组返回所有的最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226886/