如何在JavaScript中动态生成变量?

时间:2013-08-09 19:12:31

标签: javascript

我的目标是使用以下代码动态生成变量foo1foo2foo3并为其分配bar

for (var i=1;i<=3;i++) {
    myapp.set({ foo+i: "bar" })
}

我尝试在eval上使用foo,因为它不起作用。有任何想法吗?

3 个答案:

答案 0 :(得分:4)

for (var i=1;i<=3;i++) {
    var myObj = {};
    myObj['foo' + i] = 'bar';

    myapp.set(myObj);
}

答案 1 :(得分:2)

您可以使用方括号执行此操作。如果您希望变量位于全局范围内,请使用window['foo'+i]

例如:

for (var i=1; i<=3; i++) {
    window['foo'+i] = 'bar';
    // OR, if you want them in 'myApp' scope:
    myApp['foo'+i] = 'bar';
}

答案 2 :(得分:1)

http://jsfiddle.net/TASfG/

var myApp = {};

for (var i=1; i <= 3; i++) {
    myApp['foo'+i] = "bar";
}

console.log(myApp);