标题可能令人困惑,但无法想出任何其他方式来表达它。
我有一个函数可以找到联系人对象中每个属性的值,并返回' No Data '如果值为null / empty / undefined,但在每个联系对象中都有一个'地址'带有地址对象的数组,我需要使用类似的方法访问第一个/ [0]索引,这样我就不必手动创建函数来搜索每个addressLine1,addressLine2等属性的值。
基本上,我需要返回' No Data '其中addressLine1,addressLine2等的值为空。
每个对象看起来像这样:
'Items': [
{
'property1': 'propertyValue',
'property2': 'propertyValue',
'property3': 'propertyValue',
'addresses': [
{
'addressLine1': 'propertyValue',
'addressLine2': 'propertyValue',
'addressLine3': 'propertyValue',
},
{
'addressLine1': 'propertyValue',
'addressLine2': 'propertyValue',
'addressLine3': 'propertyValue',
},
{
'addressLine1': 'propertyValue',
'addressLine2': 'propertyValue',
'addressLine3': 'propertyValue',
}
]
}
]
我目前访问顶级属性值的代码如下所示:
items.forEach(function(obj) {
Object.keys(obj).forEach(function (property) {
if (obj[property] === '' || obj[property] === null || obj[property] === undefined) {
obj[property] = '*No Data*';
}
});
});
答案 0 :(得分:0)
递归的好用例:
(function nodata(items){
items.forEach(function(obj) {
Object.keys(obj).forEach(function (property) {
if (!obj[property]) {
obj[property] = '*No Data*';
}
if(obj.adresses){
nodata(obj.adresses);
}
});
});
})(items);