2011-08-11 96 views
0

即時動態試圖創建我的對象名稱。下面是代碼動態生成對象名稱

var empdept = 'financialDept'; 

       var settings = { empdept :[{ 
       'name'  : 'bob', 
       'sname'  : 'the builder', 
       'age'  : '8', 
       'req'  : 'yes'}] 
      }; 

所以,如果我想顯示年齡這樣的警報(settings.financialDept.age);不工作,但如果我有這樣的

var settings = { 'financialDept' :[{ 

       'name'  : 'bob', 
       'sname'  : 'the builder', 
       'age'  : '8', 
       'req'  : 'yes'}] 
      }; 

上面的代碼片段,現在如果我想顯示年齡這樣的警報(settings.financialDept.age);.這個工作。請真的需要幫助,以動態做到這一點。任何幫助真的很感激。感謝

+0

不要動態生成對象名稱。使用數組或將其存儲在地圖或其他內容中。 – Jeremy

+0

都是財務部門。從我讀的東西,做了一些研究,對象名應該在引文中。所以在我的代碼上面的第一個例子中,即時嘗試插入一個var變量而不是字符串本身。這就是爲什麼它不承認它。 –

回答

1

試試這樣說:

var empdept = 'financialDept'; 
var settings = {}; 

settings[emdept] = [{ 
    'name'  : 'bob', 
    'sname'  : 'the builder', 
    'age'  : '8', 
    'req'  : 'yes' 
}]; 
+0

感謝您的幫助。您的解決方案是正確的,但爲了使其正常工作,您需要在等號(設置[emdept] = {)和最後一個大括號之後刪除花括號。 –

+0

你說得對。 :) 我修好了它! –

2

嘗試

settings[empDept] = { // etc 
0
var o={key:value}; 

這裏只value可能是一個變量,而不是key

你可以做的是這樣的:

var empdept = 'financialDept'; 
var settings = {}; 
settings[empdept]={name:'bob',sname:'the builder',age:'8',req:'yes'}; 
alert(settings.financialDept.age); 

我刪除多餘的陣列,因此您可以訪問該值像你描述的(不settings.financialDept [0]。年齡在你的例子)

+0

感謝您的幫助,您的解決方案也很好,但我需要爲我的項目提供陣列。再次感謝 –