2014-08-27 80 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]); 
}