1

我的目标是动态生成变量foo1foo2并使用以下代码foo3分配给它们:bar

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

我尝试使用evalfoo不起作用。有任何想法吗?

4

3 回答 3

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

    myapp.set(myObj);
}
于 2013-08-09T19:14:29.483 回答
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';
}
于 2013-08-09T19:14:05.387 回答
1

http://jsfiddle.net/TASfG/

var myApp = {};

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

console.log(myApp);
于 2013-08-09T19:16:16.797 回答