我有一個嵌套Javascript對象像使用Javascript:使用動態變量名
var data = { 'name': { 'heading': 'Name', 'required': 1, 'type': 'String' },
'profile': {
'age': { 'heading': 'Age', 'required': 0, 'type': 'Number' },
'phone': { 'heading': 'Phone', 'required': 0, 'type': 'String'},
'city': { 'heading': 'City', 'required': 0, 'type': 'String'},
},
'status': { 'heading': 'Status', 'required': 1, 'type': 'String' }
};
在這裏,在JSON數據訪問嵌套值,我可以訪問字段data.profile.age.type或data.name.type 。沒有問題 如果我有動態變量名稱,我可以訪問如下。再次,沒有問題。
f = 'profile'; data[f].age.type
但是,在這裏我有變量名,如「名」,「profile.age」,「profile.city」等等,顯然我不能訪問他們爲f =「profile.age」;數據[f] .type不起作用。
任何人都可以指導我如何以最直接簡單的方式訪問它們(get/set)嗎?
注:我試過這個,它適用於get。
data.get = function(p) { o = this; return eval('o.'+p); };
f = 'profile.age'; data.get(f).name;
雖然設置似乎不夠簡單。請讓我知道,如果有更好的解決方案獲取和設置。
你是正確的問這個問題的SO。每當你發現自己在JavaScript中使用eval時,你幾乎肯定會做錯事情。 – 2010-12-13 17:40:22
謝謝你讓我知道eval。可能是eval是邪惡的! :-) – rsmoorthy 2010-12-13 17:53:39
你說的。看看這裏提供的最後一個建議:http://javascript.crockford.com/code.html – 2010-12-13 18:26:02