2014-08-27 41 views
-1

使用我有一组变量:jQuery的循环 - 循环计数为内环

var var1 = 0; 
var var2 = 0; 
var var3 = 0; 
var var4 = 0; 
var var5 = 0; 

我要检查他们都用一个for循环,但我不太清楚的语法:

for(var i = 1; i<6; i++){ 
    alert(var[i]); 
} 

for循环没有结果。

+5

为什么没有数组并在循环中执行'array [i]'? – Mritunjay 2014-08-27 14:59:47

+2

没有好的方法来做到这一点。你可以使用'window ['var1']'等等,但这只是一个狡猾的东西。改为使用数组或对象。 – adeneo 2014-08-27 15:00:08

+0

[Javascript动态变量名称]的可能重复(http://stackoverflow.com/questions/5117127/javascript-dynamic-variable-name) – Teemu 2014-08-27 15:02:10

回答

2

,把它们放进一个数组来代替。

var vars = [0, 0, 0, 0, 0, 0]; 
for(var i = 0; i < vars.length; i++) { 
alert(vars[i]); 
} 
+1

为什么这会被低估?这是一个适合JavaScript的程序员的正确方法和最好的建议。 – Pointy 2014-08-27 15:01:43

+0

这实际上并不是一个答案:) – Axel 2014-08-27 15:01:43

+0

这是在改变这个问题。 – user2908232 2014-08-27 15:01:59

2

如果要定义在全球范围内的varables,您可以访问使用window['var'+i]值:

for(var i = 1; i<6; i++){ 
    alert(window['var'+i]); 
} 
2

要访问它们,您必须使用它们写入的范围。如果你的代码是在window范围,将随即成为:当然

for(var i = 1; i<6; i++){ 
    alert(window['var'+i]); 
} 

虽然它更干净,如果它是在特定的,无论你正在做一个不同的范围。在这些情况下往往

for(var i = 1; i<6; i++){ 
    alert(this['var'+i]); 
} 

会工作。

1

您正在使用的数据构造对此不好。使用数组或对象对于您想要执行的操作以及易于扩展更加可行。

var arr = [0,0,0,0,0,0]; 

for (var i = 0; i < arr.length; i++) { 
    alert(arr[i]); 
} 
+0

Downvote是为什么呢? – 2014-08-27 15:02:18

+0

这实际上并不是一个答案:) – Axel 2014-08-27 15:02:18

+0

这正在改变这个问题。数据结构是问题的给定。 – user2908232 2014-08-27 15:02:39

0

var [i]被使用它var是一个数组。但在你的情况下不是。最好的办法是将这些值放在一个数组中,比如;

var myvar = [0,0,0,0,0]; 

然后使用for循环来检查值。

for(var i = 1;i<6; i++){ 
alert(myvar[i-1]); 
}