2013-08-02 85 views
0

例如A = 10,我想創建一個變量與它的值。是否可以根據多個變量的值創建變量?

像這樣:var i10或者A = 2,我想創建一個像這樣的變量var i2

例如, A = 10B = 5,我想要一個var A10B5,那有可能嗎?

編輯:更多信息

+4

你在找數組嗎? – NINCOMPOOP

+0

http://stackoverflow.com/questions/5117127/javascript-dynamic-variable-name –

+0

可能的重複看看這裏 - http://stackoverflow.com/questions/5117127/javascript-dynamic-variable-name –

回答

3

這是可能的,因爲在this question on SO中詳細解釋。

A = 10; 
B = 5; 

window['A' + A + 'B' + B] = 'Hello'; 

alert(A10B5); 
// alerts: Hello 

this jsfiddle中查看演示。

儘管如此,我沒有看到它的要點,因爲您必須保留對該對象名稱的引用,所以將該值存儲在一個函數或對象中的局部變量中始終具有相同的名稱或者使用數組來存儲值。

達到預定可使用建議解決辦法:

使用二維數組:

Calendar[A][B] = 'value'; 

通過創建動態的變量,你必須每次需要訪問它的時間來重建變量的名稱它。通過使用二維數組,您可以將數組與兩個變量一起使用,這樣可以省去代碼以重複重新創建變量名稱,並且使其更易於閱讀和維護。

0

您可以A = 10B = A但是這需要在不同的變量相同數量,也可以使一個if語句像

if(A > 10){ A = 11 } 
1
var A = 10, B = 5; 
window['A' + A + 'B' + B] = "You should avoid polluting global " + 
          "scope at all costs."; 
alert(A10B5); 

相反,你應該訴諸對象:

var myVars = {}, A = 10, B = 5; 
myVars['A' + A + 'B' + B] = "Just like this."; 
alert(myVars.A10B5); 
1

您可以創建動態變量與eval()函數

var a = 10; 
eval("variable" + a + " = a"); 

這個返回一個變量名稱爲 「variable10」 和值「 10" 。

look here呢!

欲瞭解更多信息:w3schools eval()

希望它可以幫助^ _^

+0

哎。應該非常小心地使用'eval()'並儘可能避免。 –

+0

但是,許多人認爲它是動態創建變量名稱的一種解決方案。 – Alesanco

0

check this out

'一個= 'varname的';

str = a +'='+'123';

eval(str);

alert(varname); `

+0

您提供了一個很好的解決方案的鏈接,並附帶了一個完全不同的,不相關的(可能是危險的)示例的示例? –

相關問題