我有一个类似的JSON对象;
var data = {
Name : "test name",
Type : "test type",
VendorInfo :{
FirstName : "Vendor First Name",
LastName : "Vendor Last Name",
Address : "Vendor Address",
City : "Vendor City",
ZipCode : "Zip"
}
}
现在另外我想保留有关如何访问data var
中字段的信息var accessInfo=[
{ fieldName : "Name", actionName : "Edit" },
{ fieldName : "Type", actionName : "Edit" },
:
:etc..
]
现在在我的javascript中我可以通过for循环遍历accessInfo数组,类似于;
for(var i=0;i<accessInfo.length;i++){
data[accessInfo[i].fieldName] = "changed field";
}
适用于顶级字段,但我无法弄清楚如何访问层次结构中较低的字段..如data.VendorInfo.FirstName,data.VendorInfo.LastName等。
这一切都可能吗?我尝试了“VendorInfo.FirstName”和[VendorInfo] [FirstName],但没有去..
答案 0 :(得分:0)
您只需要解析访问规范以遍历目标对象。你可以使用这样的函数:
function getProp(obj, propName) {
var prop;
var props = propName.split('.');
for (var i = 0; i < props.length; i++) {
prop = obj[props[i]];
if (typeof prop === 'null' || typeof prop === 'undefined') return prop;
}
return prop;
}