Javascript =从字符串构建变量名称

时间:2013-01-26 13:36:54

标签: javascript arrays string

让我说我有:

var acDeMa = [10, 20, 30, 40, 50];  
var test1 = 5;

var test2 = 7;

var test3 = 3;

var piece1;

var piece2;

var piece3;

if ( test1 == 5 )
{piece1 = "ac";}

if ( test1 == 7 )
{piece2 = "De";}

if ( test1 == 3 )
{piece3 = "Ma";}

如何组合这些片段,将其识别为前面的数组,并将我的数组中的值复制到新数组中?

var finishedArray = (piece1 + piece2 + piece3);

基本上我想要下面这个效果,但不必专门输入它的名字(acDeMa):

var finishedArray = acDeMa;

我该怎么做呢?这样做的原因是因为我有大约60个阵列,我一次比较两个。一些数组有共同之处,所以我不是使用60个单独的'if'语句,而是使用一些选择'if'语句(巧妙地找到各种数组的共同点)将正确的数组名称拼凑在一起,然后将其用作我的数组。

不,我不想在新阵列中使用数字5,7和3。我想要数字:10,20,30,40,50在finishedArray,但因为这些数字每次都可能不同,我不想写:

var finishedArray = acDeMa;

var finishedArray = [10, 20, 30, 40, 50];

2 个答案:

答案 0 :(得分:2)

不是真的推荐,但如果你在全局环境中工作,你可以使用像这样的窗口对象

var finishedArray = window[piece1+piece2+piece3];

这将创建对原始数组的引用。要获得单独的副本,请使用slice方法

var finishedArray = window[piece1+piece2+piece3].slice(0)

答案 1 :(得分:0)

而不是数组,从一个对象开始:

var myArrays = { acDeMa : [10, 20, 30, 40, 50] }

然后

var finishedArray = myArrays[piece1 + piece2 + piece3];