2015-02-06 77 views
0

我正在创建一堆不同的数组,并且需要每个数组都有特定的名称(显然)。如何增加数组的名称?如何以编程方式命名数组

我已经试过这样:

for (var i = 0; i < 9; i++) { 
    var array+i = new Array() ; 
} 

但它显然是行不通的,因为Unexpected token '+'. Expected ';' after var declaration.

我要的是有一个与下列名称数组:

array0 
array1 
array2 
array3 
... 

我肯定这是一个简单的修复,我只是不知道该怎么做!

+4

你有没有考虑数组的数组? – 2015-02-06 16:16:45

+0

为什么不使用数组数组? [[] [] [] ...] – lhoworko 2015-02-06 16:16:57

+0

也许是2D数组? – gongzhitaao 2015-02-06 16:16:58

回答

3

将数组作为键/值添加到对象。通过这种方式,您可以将它们全部保存在一个地方,并且不会污染全球空间数组。

var arrObj = {}; 
for (var i = 0, l = 5; i <= l; i++) { 
    arrObj['array' + i] = []; 
} 

例如使用arrObj.array0.push('Bob');进行访问。

DEMO

+0

或者只是'arrOfArrays [i] = []'.. – user2864740 2015-02-06 16:18:55

+1

那么OP确实说他想要'array0'等等 – Andy 2015-02-06 16:19:59

0

您不能像这样创建变量名称。但是,您可以将它们添加到地图中:

var arrays = {}; 

for (var i = 0; i < 9; i++) { 
    arrays['array' + i] = []; 
} 
0

如果你正在寻找的数组是你应该采取的window对象的优势,像这样的全局变量:

for(var i=0;i<6;i++){ 
    window["array"+i] = []; 
} 

使用这6个全局数组将创建一个名为:

阵列0
阵列1
数组2
ARRAY3
array4
array5

我相信这是你在找什么,但如果你想要的数组作为另一个对象,然后Jivings'和安迪的回答的成员是你在找什么。

1

一个选项将使用数组的数组,也就是2d数组。你可以用两种不同的方式来做到这一点。

首先,当你创建数组容器初始化所有的数组:

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

 
for (var i = 0; i < arrays.length; i++) { 
 
    document.body.innerHTML += "<div>Array" + i + " = " + arrays[i] + "</div>"; 
 
}
div { 
 
    margin: 5px; 
 
}

或者,使用正常array[index]方法添加阵列到阵列容器:

var arrays = new Array(); 
 

 
for (var i = 0; i < 4; i++) { 
 
    arrays[i] = [i, i + 1, i + 2, i + 3]; 
 
} 
 

 
for (var i = 0; i < arrays.length; i++) { 
 
    document.body.innerHTML += "<div>Array" + i + " = " + arrays[i] + "</div>"; 
 
}
div { 
 
    margin: 5px; 
 
}

然后,如果你想访问数组中的一个项目,你可以调用arrays [x] [y]。其中x是数组编号,y是项目编号。

相关问题