让我说我有:
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];
答案 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];