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 按照块大小(每个子阵列的元素数)将平面数组分组到多维数组中