我想检查对象是否有子对象数组
例如
{
"parent_category_id": "ABC",
"parent_category_name": "ABC COMPANY",
"place_id": 733,
"industry": {
"@nil": "true"
}
"street_id": 733
}
您如何检查“Industry”对象是否具有子数组。 就像“Industry”的子数组值为“@nil:true”一样。然后提醒孩子
答案 0 :(得分:1)
您可以咨询instanceof
运营商。
例如:
var t = {
"parent_category_id": "ABC",
"parent_category_name": "ABC COMPANY",
"place_id": 733,
"industry": {
"@nil": "true"
},
"street_id": 733
};
之后,您可以使用:
t.industry instanceof Object // result is: true
t.industry instanceof Array // result is: false
答案 1 :(得分:0)
如果您只是想检查一个对象是否有子节点并且不是空的,您可以执行IF
语句,如:
if (obj.industry) {}
或者像这样使用Object.getOwnPropertyNames(obj)
方法,该方法将返回对象中所有属性的名称:
var obj = {
"parent_category_id": "ABC",
"parent_category_name": "ABC COMPANY",
"place_id": 733,
"industry": {
"@nil": "true"
},
"street_id": 733
};
var names = Object.getOwnPropertyNames(obj.industry);
names.forEach(name => console.log('Property/Value ->', name, obj.industry[name]));
答案 2 :(得分:0)
你可以这样做:
info = {
"string": "ABC",
"array": [1, 2, 3],
"object": {
"key": "value"
},
"object(empty)": {},
}
function isEmpty(obj) {
if (obj instanceof Object && !(obj instanceof Array)) {
for (var i in obj) {
if (hasOwnProperty.call(obj, i)) return false;
}
}
return true;
}
for (var i in info) {
if (isEmpty(info[i]) == false) {
console.log(info[i]);
}
}
答案 3 :(得分:-1)
Array.isArray(parentobj.industry)
如果您打算检查它是否是数组