我想创建一个名为currentArray
的数组,但我希望它的内容由不同的数组组成。基本上是副本。但是,我想影响使用变量(int)将哪个数组复制到currentArray
。
这就是我的意思:
function region(number)
{
var regionArray1 = [1093, 1276, 436, 541];
var regionArray2 = [563, 747, 310, 423, 744, 947, 601, 715];
var currentArray = (regionArray+number)[];
}
number
将是1或2.如果可以的话,这样做的正确方法是什么?我也试过了var currentArray = ("regionArray"+number)[];
,但这似乎也不是正确的方法。
答案 0 :(得分:5)
“最佳”方式是使regionArray
成为数组数组(或数组对象):
function region(number)
{
var regionArray = {
"1": [1093, 1276, 436, 541],
"2": [563, 747, 310, 423, 744, 947, 601, 715]
};
var currentArray = regionArray[number];
}
答案 1 :(得分:2)
我会使用二维数组:
function region(number) {
var regionArrays = [
[1093, 1276, 436, 541],
[563, 747, 310, 423, 744, 947, 601, 715]
];
var currentArray = regionArrays[number - 1];
}
答案 2 :(得分:2)
function region(i) {
var regionArray = [
[1093, 1276, 436, 541],
[563, 747, 310, 423, 744, 947, 601, 715]
];
var currentArray = regionArray[i];
}
答案 3 :(得分:0)
您应该使用开关/外壳。如果您知道需要执行的所有信息,则不应使用eval
。
function region(n) {
// define arrays ...
switch(n) {
case 1 : currentArray = regionArray1; break;
case 2 : currentArray = regionArray3; break;
}
}
如果扩展到2以上,您可以拥有一个数组数组,只需指定currentArray = arrayChoices[n];
答案 4 :(得分:0)
为什么不这样:
function region(number)
{
var regionArray = [];
regionArray[0] = [1093, 1276, 436, 541];
regionArray[1] = [563, 747, 310, 423, 744, 947, 601, 715];
var currentArray = regionArray[ number ];
}