2013-02-05 25 views
0

我正在尋找使用數組來創建變量的唯一名稱。我不想將任何計算值存儲在數組中,而是能夠使用數組聲明變量來存儲值。我的嘗試和研究如何做到這一點讓我認爲這是不可能的。如果有人能讓我知道,並且如果有可能的話,我將不勝感激。我會發佈一個簡單的例子,說明我希望工作的內容。通過使用數組元素值聲明多個變量名稱

var indices = ["index01", "index02", "index03"]; 
var keys = ["key01", "key02", "key03"]; 
for (var index = 0; index < indices.length; index++) 
{ 
    for (var key = 0; key < keys.length; key++) 
    { 
     var indices[index]+keys[key] //Looking for var index01key01, var index01key02 etc... 
    } 
} 
+0

的可能的複製[字符串轉換爲在Javascript變量名稱](http://stackoverflow.com/questions/ 5613834 /轉換字符串到變量名,在JavaScript的)。這經常被問到,但我懷疑這是個好主意。 –

+0

不,你一定在做錯事([XY-problem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem))。你爲什麼要聲明這麼多不同的變量?改用適當的數據結構。 – Bergi

回答

0

好了,基本的JavaScript變量在window範圍,所以嘗試:

var indices = ["index01", "index02", "index03"]; 
var keys = ["key01", "key02", "key03"]; 
for (var index = 0; index < indices.length; index++) 
{ 
    for (var key = 0; key < keys.length; key++) 
    { 
     // you can now use the variable as window.index01key01, or just index01key01 
     window[indices[index]+keys[key]] = null; 
    } 
} 
+1

這些變量是全局定義的,但不是本地的。 OP在定義部分有'var'關鍵字。 – VisioN

+0

謝謝@Gareth和@Vision - 完全可以工作。這是我的彙編編碼器,正在閃耀。我實際上讀過其他的「將字符串轉換爲Javascript中的變量名」發佈,但未能使其工作。但這讓我意識到一些事情。在我主要使用的語言中(無可否認,它們幾乎都是大型機的雙面)聲明總是需要的,並且它們必須始終是明確的。因此,在我嘗試過的所有事情中,我都已經開始使用'var whatever',如果沒有,我會在幾天前找到這個解決方案。它引出了一個問題:這是一次性的是他們的許多這種情況。 – Clay