2011-06-28 54 views
1
var adddata = {}; 
adddata[ group ] = {}; 
adddata[ group ].type = type; 
adddata[ group ].items = {}; 
adddata[ group ].items[ id ] = value; 
$.extend(data, adddata); 

我真的需要定義adddata這麼長的路嗎?如果groupid是固定的字符串,它很短有沒有更簡單的方法來定義具有可變鍵的對象結構?

$.extend(data, { group1:{ type: type, items:{ id1: value } } }); 

回答

2

的Javascript只支持對象文本內的文字鍵。您只能使代碼更短一點:

var adddata = {}; 
adddata[group] = { type: type, items: {} }; 
adddata[group].items[id] = value; 
$.extend(data, adddata); 
+0

是的,當然,這看起來更好。你知道嗎,我怎麼能從'adddata'中刪除'id'這個關鍵字。我嘗試過'adddata [group] .items [id] = null;'它是_null_但是...... items [id]'仍然可用。 – Alex

+1

@Alex,使用[delete](https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete)運算符:'delete adddata [group] .items [id];' –

+0

+1這麼容易...謝謝你! – Alex

相關問題