var term = [,];
term[0,0]="0";
term[0,1]="1";
term[1,0]="2";
term[1,1]="3";
alert(term[0,1]);
退货3,我不知道为什么。 从逻辑上讲,它应该返回1,正确吗?
答案 0 :(得分:2)
在JavaScript中,当您使用a, b
这样的表达式时,它会同时评估a
和b
,并且表达式的结果将为b
。您可以像这样确认
console.log((1, 2));
# 2
console.log((0, 1));
# 1
console.log((1, 0));
# 0
所以,
term[0, 0] = "0";
term[0, 1] = "1";
term[1, 0] = "2";
term[1, 1] = "3";
被评估为
term[0, 0] = term[0] = "0";
term[0, 1] = term[1] = "1";
term[1, 0] = term[0] = "2";
term[1, 1] = term[1] = "3";
因此实际数组只有2
和3
。现在,您正尝试访问0, 1
,这相当于
term[0, 1] = term[1]
这就是你得到3
的原因。
要实际创建二维数组,您需要创建一个主数组并继续向其添加子数组,如下所示
var term = [];
term.push([0, 1]);
term.push([2, 3]);
现在,要访问0, 1
的值,您需要这样做
term[0][1]
答案 1 :(得分:1)
2D 表示[[]]
,而非[,]
jsBin example
var term = [[],[]];
term[0][0]="0";
term[0][2]="1";
term[1][0]="2";
term[1][3]="3";
console.log( term ); // [["0", "1"], ["2", "3"]]
console.log( term[0][1] ); // "1"
您也可以使用Array.prototype.push()
将键插入/附加到数组中答案 2 :(得分:0)
JavaScript数组不会那样工作。
这是一个应该有效的例子:
var term = []; // Create array
term[0] = ["0", "1"]; // What you referred to as [0,0] and [0,1]
term[1] = ["2", "3"]; // What you referred to as [1,0] and [1,1]
alert(term[0][1]); // Proper JavaScript way to access 2D array.
这是jsfiddle。