在 for 循环中创建多个变量

use*_*263 5 javascript variables for-loop

我正在尝试在循环内创建多个新变量。新变量的数量取决于另一个变量的长度(下面使用的变量“列表”)。

for(var i = 0; i < list.lenght; i++) 
{ 
var counter + i;   // create new variable (i.e. counter1, counter2,...)
}
Run Code Online (Sandbox Code Playgroud)

我在 StackOverflow 上发现了很多非常相似的问题,答案主要是使用数组(即如何在循环内创建动态变量名称?)。

如果我使用建议的解决方案,我是否创建了一个变量数组?所以在我的例子中,我将创建多个计数器,然后我可以向这些变量添加值,即:

counter6++;
Run Code Online (Sandbox Code Playgroud)

如果不是这样,我该如何解决这个问题?

我很抱歉要求您解释一个旧答案,但由于声誉低,我无法在旧答案中发表评论。

per*_*mon 3

您在这里有一些选择:

将它们创建为全局的(不是最佳实践):

for(var i = 0; i < list.lenght; i++){ 
  window['counter' + i] = 0;   // create counter1, counter2,...)
}
Run Code Online (Sandbox Code Playgroud)

使用对象:

var scope = {};
for(var i = 0; i < list.lenght; i++){ 
  scope['counter' + i] = 0;   // create scope.counter1, scope.counter2,...)
}
Run Code Online (Sandbox Code Playgroud)

将对象与with关键字一起使用

var scope = {};
for(var i = 0; i < list.lenght; i++){ 
  scope['counter' + i] = 0;   // create scope.counter1, scope.counter2,...)
}
with(scope){
 // here you can acesess keys in the scope object like them variable on the function scope
 counter0++
}
Run Code Online (Sandbox Code Playgroud)

使用普通的旧数组

var scope = new Array(list.length);
Run Code Online (Sandbox Code Playgroud)