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

Javascript = Building a variable name from strings

本文关键字:变量名 构建 字符串 Javascript      更新时间:2023-09-26

假设我有:

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

var finishedArray = acDeMa;

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

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

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

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

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

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

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

然后

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