javascript创建多维数组语法[重复]

Posted

技术标签:

【中文标题】javascript创建多维数组语法[重复]【英文标题】:javascript creating multi-dimensional array syntax [duplicate] 【发布时间】:2011-06-25 03:04:06 【问题描述】:

今天听说可以用这种语法在js中创建多维数组:

var a = new Array(3,3);
a[2][2] = 2;
alert(a[2][2])

但是这在歌剧中不起作用。我是不是哪里错了?

【问题讨论】:

这是使用new Array()的原因之一。如果只传递一个参数,则确实将数组的长度设置为该参数。但是如果你传递多个,它会生成一个包含这些元素的数组。无需使用Array(),使用文字符号代替[] 【参考方案1】:

是的,你在某个地方错了。 var a = new Array(3,3); 的含义与var a = [3,3]; 相同。它创建了一个包含两个成员的数组:编号 3 和编号 3

数组构造函数是 javascript 语言设计中最糟糕的部分之一。给定一个值,它决定了数组的长度。给定多个值,它使用它们来初始化数组。

始终使用var a = []; 语法。它是一致的(并且更短且更易于阅读)。

没有用于创建数组数组的快捷语法。您必须分别构建每一个。

var a = [ 
          [1,2,3],
          [4,5,6],
          [7,8,9]
         ];

【讨论】:

我相信 OP 正在尝试使用该语法创建一个多维数组。编辑:此评论不再相关。 你是对的。有人告诉我它创建了一个多暗阵列。感谢您提供清晰明确的答案【参考方案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";

没有办法直接实例化多维数组。

【讨论】:

第二块,你不是说mv[1][0]mv[1][1]吗? 唯一用 3 个维度为我解决问题的脚本...谢谢。【参考方案3】:

你想创建一个数组数组,但是 您正在创建一个包含 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]
];

【讨论】:

以上是关于javascript创建多维数组语法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中的深平面多维数组[重复]

创建元素的重复多维

javascript 按照块大小(每个子阵列的元素数)将平面数组分组到多维数组中

从字符串创建多维数组[重复]

多维数组到多维 SimpleXMLElement(XML 对象)[重复]

PHP从具有关系数据的数组创建多维数组[重复]