今天我听说可以使用这种语法在js中创建一个多维数组:
var a = new Array(3,3);
a[2][2] = 2;
alert(a[2][2])
然而,这在歌剧中不起作用。我错了吗?
答案 0 :(得分:7)
是的,你错了。 var a = new Array(3,3);
表示与var a = [3,3];
相同。它创建一个包含两个成员的数组:Number 3
和Number 3
。
数组构造函数是JavaScript语言设计中最糟糕的部分之一。给定单个值,它确定数组的长度。给定多个值,它使用它们来初始化数组。
始终使用var a = [];
语法。它是一致的(并且更短,更容易阅读)。
创建数组数组没有捷径语法。你必须分别构建每一个。
var a = [
[1,2,3],
[4,5,6],
[7,8,9]
];
答案 1 :(得分:2)
您发布的代码生成一个由两个整数组成的数组。然后,您尝试将整数视为数组。
mv = new Array();
mv[0] = new Array();
mv[0][0] = "value1-1";
mv[0][1] = "value1-2";
mv[1] = new Array();
mv[1][0] = "value2-1";
mv[1][1] = "value2-2";
无法直接实例化多维数组。
答案 2 :(得分:0)
你想创建一个数组数组,但是 你正在创建一个包含2个元素的数组:
var a = new Array(3,3);
// a = [3,3]
如果你想创建一个多维数组,你必须考虑数组的数组 这样,二维数组(或矩阵)将被定义为:
var a = [[],[]];//or var a = new Array([],[]);
//or if you want to initialize the matrix :
var b = [
[1,2],
[3,4]
];