1

我过去在Microsoft Small Basic中编程过,它可以有这样的数组:

Array[1][1] = "Hello"
Array[1][2] = "Hi"
Array[1][2] = "Hey"

现在,在 Javascript 中,我知道如何创建单个数组 ( var Array = New Array()),但是有没有像上面那样的数组类型?

4

5 回答 5

8

JavaScript 中没有真正的多维数组。但是您可以像您所做的那样创建一个数组数组。

JavaScript 的数组只是具有特殊length属性和不同原型链的对象。

于 2013-01-09T22:24:44.940 回答
2

是的,您需要创建一个arrayof arrays

var x = new Array(3);
x[0] = new Array(3);
x[1] = new Array(3);
x[2] = new Array(3);

x[0][0] = "Hello";
etc.

请记住,索引是从零开始的。

编辑

或者:

var x=[];
x[0] = [];
x[1] = [];
x[2] = [];
...
x[0][0] = "Hello";

etc.
于 2013-01-09T22:26:57.663 回答
0

最简单的方法是只声明一个数组,然后用一堆其他数组初始化它。例如:

var mArray = [
  [1,2,3],
  [4,5,6]
  ];

window.alert(mArray[1][1]); //Displays 5

正如其他人所指出的,这 实际上并不是标准意义上的多维数组。它只是一个恰好包含其他数组的数组。您可以轻松地拥有一个包含 3 个其他数组、一个 int、一个字符串、一个函数和一个对象的数组。JavaScript 就是这么酷。

于 2013-01-09T22:27:21.127 回答
0

你可以做到这一点:

var o = [[1,2,3],[4,5,6]];

您还可以使用 javascript 中的对象是字典这一事实:

var o;
o["0"] = {'0':1, '1':2, '1':3};
var x = o["0"]["1"]; //returns 2
于 2013-01-09T22:28:13.117 回答
0

您可以像这样在 JS 中静态创建数组:

var arr = [
   [1, 2, 3, 4], 
   [8, 6, 7, 8]
];

请注意,由于这不是一个真正的“多维数组”,只是一个“数组数组”,“内部数组”不必是相同的长度,甚至是相同的类型。像这样:

var arr = [
   [1, 2, 3, 4], 
   ["a", "b"]
];
于 2013-01-09T22:29:20.083 回答