2015-04-07 82 views
0

我在這個小提琴中重新創建了基本級別的情況:http://jsfiddle.net/5Y5FN/74/。我有一個以數字結尾幾個變量:如何在for循環中重命名類似命名的變量

var var1; 
var var2; 
var var3; 

如何使用在我通過他們通過在變量名的末尾改變迭代數量在for聲明的方式,這些變量?它甚至有可能這樣做嗎?這樣做的目的是給每個變量的值更改爲3。這裏有一些方法我試圖做到這一點:

var(1), var[2], var+'3' 
+3

窗口[ 'var'+ i],儘管這似乎是一件奇怪的事情需要去做。你想在更高的層次上做什麼? –

+0

哦,我甚至不知道如何開始解釋那個笑,但我在這裏錯誤地應用http://jsfiddle.net/5Y5FN/75/ – nick

+1

問題是,除非這些變量是全球性的,你不能訪問他們你想要的方式(據我所知)。將它們作爲key:value對存儲在一個簡單的對象中可能會更容易,例如'var items = {var1:1}',以便您可以通過items ['var'+ i]' –

回答

2

重命名你的變量,所以他們是一個Javascript數組,而不是命名變量是。結果就是你可以迭代它們。

所以var1,2,3將成爲varArray [1],varArray [2],varArray [3]等

+0

除了'var'是一個保留字,所以你不能像這樣命名你的數組。 – Aleuck

+0

@Aleuck:是的,快到一個職位:)更正它爲一個工作變量:) –

0

如果您var1var2等變量的一個函數裏,沒有什麼可以做。但是,如果這些變量是在頂級作用域中聲明的,則它們將被設置爲全局對象(window,在瀏覽器中)的屬性。

如果是這樣的話(在頂層對象定義的變量,或在其他一些對象,如果您可能,但不是功能範圍的變量),你可以這樣做:

for (var i = 1; i < 4; i++) { 
    window['var' + i] = 'some value'; 
}