2016-08-17 430 views
0

我能夠使用for循環來聲明變量嗎?因爲逐個聲明相似的變量並不聰明。Javascript:通過for循環生成變量

例如,如果我要像變量:DATA1,DATA2和DATA3,我通常會宣佈它象下面這樣:

var data1 = ""; 

var data2 = ""; 

var data3 = ""; 

和下面的是什麼,我希望我們能在實際的代碼做。

使用for循環並使用「i」爲每個變量分配編號。

for(var i = 0; i < 3 ;i++){ 

    var data+i = ""; 

} 

我能夠做到嗎?我想上面的代碼不是正確的做法,而只是一個概念。

+4

您不應該以這種方式生成變量。尤其是當有那種稱爲數組的甜美數據結構時。 –

+0

所以我應該如何做到這一點與數組?因爲我無法預測有多少datax我想擁有 – anson920520

+1

var data = [];'會給你數百萬的數據[x] - 閱讀[documentation](https://developer.mozilla.org/en-US/) docs/Web/JavaScript/Reference/Global_Objects/Array) – mplungjan

回答

2

您可以定義對象或全局變量。

var variables = {}; 
 

 
for (var i = 0; i < 3; i++) { 
 

 
    variables['data' + i] = i; 
 

 
} 
 

 
console.log(variables); 
 

 
// you can use it like variables.data0 
 

 

 
// by the way you can define global variables as you want 
 
// but note that this pollutes the global space 
 

 
for (var i = 0; i < 3; i++) { 
 
    window['data' + i] = i; 
 
} 
 
// so you can use it like 
 

 
console.log(window.data0, ' or ', data0)

+0

我可以使用for循環來調用它嗎? – anson920520

+0

like variables.data [i] – anson920520

+0

@ anson920520。去嘗試一下。如果它的工作..沒關係 – DININDU

1

由於JavaScript是動態類型的,因此您可以做類似的事情。 JavaScript爲您提供了通過密鑰訪問變量的可能性。

var baseVariable = {}; 
for(var i = 0; i < 3; i++){ 
    baseVariable["data" + i] = "ValueForData" + i; 
} 

可以比訪問這些變量通過了baseVariabel迭代很容易,或者如果你現在的確切數額,你甚至可以把它像:

baseVariable.data1 
-1

可以使用eval函數從字符串評估代碼。 例如:

var a = 2; eval('alert(a)'); 

看看作業鏈。可能會是合適的。

var a = b = c = d = e = f = g = ""; 

但是這種方式並不是一個好的做法。 正如在你的問題的評論中提到的更好的方式來使用數組或對象來存儲數據。