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

如何在JavaScript中动态生成变量?,javascript,Javascript,我的目标是动态生成变量foo1、foo2和foo3,并使用以下代码将bar分配给它们: for (var i=1;i<=3;i++) { myapp.set({ foo+i: "bar" }) } for(var i=1;i您可以使用方括号来执行此操作。如果希望变量位于全局范围内,请使用window['foo'+i] 例如: for(var i=1;i您可以使用方括号来执行此操作。如果希望变量位于全局范围内,请使用window['foo'+i] 例如: for(var i=1;i

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

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

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

例如:


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

例如:

for(var i=1;i
for(var i=1;i
for(var i=1;i

var myApp={};
对于(var i=1;i

var myApp={};

对于(var i=1;i为什么不使用数组?访问数据会更容易。你能在
foo
上发布你尝试使用
eval
时使用的代码吗?为什么不使用数组?访问数据会更容易。你能在
foo
上发布你尝试使用
eval
时使用的代码吗?为什么将变量放入全局范围?Smells就像糟糕的架构…这只是一个例子,展示了一种模式,你可以应用到你想要的任何范围。我不建议你使用全局范围,正如任何答案都建议你使用“foo”作为变量名一样。只是说我们可能不应该使用全局范围的例子。很多人都是编程新手,这可能会导致合作nfusion。大多数新程序员都知道foo是一个通用名称,而很多人不知道什么是全局范围。我想我本可以提出一个更好的评论,但我只是想让人们在复制和粘贴之前三思而后行为什么要将变量放在全局范围内?闻起来像糟糕的架构……这只是一个例子,展示了一种模式n您可以应用于任何您想要的范围。我不建议OP使用全局范围,正如任何答案都建议您使用“foo”作为变量名一样。只是说我们可能不应该使用全局范围示例。许多人对编程是新手,这可能会导致混淆。大多数新程序员都知道foo是一个通用的变量我,虽然很多人不明白什么是全球范围。我想我本可以提出一个更好的评论,但我只是想让人们在复制和粘贴之前三思而后行
for (var i=1; i<=3; i++) {
    window['foo'+i] = 'bar';
    // OR, if you want them in 'myApp' scope:
    myApp['foo'+i] = 'bar';
}
for (var i=1;i<=3;i++) {
    var myObj = {};
    myObj['foo' + i] = 'bar';

    myapp.set(myObj);
}
var myApp = {};

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

console.log(myApp);