2014-04-09 32 views
2

我有一個這樣的對象:如何改變對象的關鍵動態

var obj{}; 

我要動態地設置對象的值,象這樣:

for(i=0;i<10;i++) 
{ 
quest='quest'+i; 
header='header'+i; 
$(obj).data(quest,{header:i}); 
quest,header=0; 
} 

我期待保存對象像:

obj{quest1:{header1:1}, 
quest2:{header2:2} 
quest3:{header3:3} 

但它們被保存,如:

obj{quest1:{header:1}, 
quest2:{header:2}, 
quest3:{header:3}, 

我的對象中的header-key沒有得到實際的值。但簡單地保存爲「標題」。

請問你能指導我嗎?

回答

2

你可以寫:

var obj = {}; 

for(i=1; i<11; i++) { 
    quest='quest'+i; 
    header='header'+i; 
    obj[quest] = {}; 
    obj[quest][header] = i; 
} 
+0

這工作就像一個魅力。 – Sumanth

1

在你的代碼,你的循環開始與i = 0但性能開始由1

var quest, header, obj = {}; 

for (i = 0; i < 10; i += 1) { 
    quest = 'quest' + (i + 1); 
    header = 'header' + (i + 1); 
    obj[quest] = {}; 
    obj[quest][header] = (i + 1); 
} 
0

你不能在一個對象字面可變密鑰。