-3

假设我有:

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。我想要finishedArray中的数字:10、20、30、40、50,但是因为这些数字每次都可能不同,所以我不想写:

var finishedArray = acDeMa;

或者

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

2 回答 2

2

不是很推荐,但如果你在全局上下文中工作,你可以像这样使用 window 对象

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

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

var finishedArray = window[piece1+piece2+piece3].slice(0)
于 2013-01-26T13:40:04.340 回答
0

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

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

接着

var finishedArray = myArrays[piece1 + piece2 + piece3];
于 2013-01-26T13:41:40.343 回答