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

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

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

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

【问题讨论】:

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

标签: javascript


【解决方案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]
];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2019-07-18
    • 2019-08-18
    • 2017-03-26
    • 1970-01-01
    • 2015-11-15
    • 2018-06-17
    相关资源
    最近更新 更多