鑑於以下OBJ:入門嵌套OBJ值
var inputMapping = {
nonNestedItem: "someItem here",
sections: {
general: "Some general section information"
}
};
我通過傳遞串"nonNestedItem"
或在巢式病例"sections.general"
寫一個函數來get
數據。我不得不使用eval
和我想知道是否有更好的方法來做到這一點。
這是我到目前爲止,它的工作原理好。但改善!
function getNode(name) {
var n = name.split(".");
if (n.length === 1) {
n = name[0];
} else {
var isValid = true,
evalStr = 'inputMapping';
for (var i=0;i<n.length;i++) {
evalStr += '["'+ n[i] +'"]';
if (eval(evalStr) === undefined) {
isValid = false;
break;
}
}
if (isValid) {
// Do something like return the value
}
}
}
這裏沒有JSON。不要將JavaScript對象與JSON混淆。 – Quentin
[JavaScript對象:通過名稱作爲字符串訪問變量屬性]的可能重複(http://stackoverflow.com/questions/4255472/javascript-object-access-variable-property-by-name-as-string) – Quentin
冷靜下來。確定它的一個js對象,我將刪除對'json'的所有引用。雖然有點挑剔。我不認爲這是一個愚蠢的問題。 –