在我有类似代码的情况下:
var variableNames=["thisMonth", "thisDay"];
var variableValues=["February", 17];
有什么方法可以通过数组并使用相应的值启动变量?我尝试过像
这样的东西for(var i=0;i<variableNames.length;i++){
eval("var "+variableNames[i]+"="+variableValues[i]+";");
}
但我没有得到任何结果。 eval无法定义变量,还是存在其他问题?任何解决方案都将不胜感激。
答案 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]+"';");
}
然而,通过这种修正,我会警告你不要使用它,因为这是一种非常错误的做法。
使用对象,就像这里提到的那样。