在Javascript中动态定义变量

时间:2014-02-18 22:47:47

标签: javascript variables

在我有类似代码的情况下:

var variableNames=["thisMonth", "thisDay"];
var variableValues=["February", 17];

有什么方法可以通过数组并使用相应的值启动变量?我尝试过像

这样的东西
for(var i=0;i<variableNames.length;i++){
    eval("var "+variableNames[i]+"="+variableValues[i]+";");
}

但我没有得到任何结果。 eval无法定义变量,还是存在其他问题?任何解决方案都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您需要在对象上分配变量。如果要创建全局变量,则以下代码应该起作用:

for (var i=0; i<variableNames.length; i++) {
  window[variableNames[i]] = variableValues[i];
}

//test
console.log(thisMonth); //"February"    

答案 1 :(得分:0)

你走了。您错过了"='" + variableValues[i] + "';");的几个引号:

var variableNames=["thisMonth", "thisDay"];
var variableValues=["February", 17];
for(var i=0;i<variableNames.length;i++){
    eval("var "+variableNames[i]+"='"+variableValues[i]+"';");
}

然而,通过这种修正,我会警告你不要使用它,因为这是一种非常错误的做法。

使用对象,就像这里提到的那样。