我有一个基于文件数据填充的对象。我想知道填充的对象是否具有major和minor的空对象,并且gpa中的属性都设置为null。以下是填充对象的外观:
Bob Smith {
major: {},
minor: {},
gpa: { freshman: null, sophomore: null, junior: null }
}
我想知道bob smith对象中的所有对象是否都是空的,所以我可以退出我的程序而不执行所有逻辑。
修改的 我不像以前那么清楚。这不是一个全空或全人居住的情况。在某些情况下,某些对象会有数据,有些则不会。 Bob Smith可以填充如下:
Bob Smith {
major: {
department: 'Math'
},
minor: {},
gpa: { freshman: 3.5, sophomore: null, junior: null }
}
简而言之,Bob Smith对象可能有很多非空对象的组合,我只想找到一种方法来快速确定major和minor是否为空,gpa的值是否设置为null。我尝试过使用._isEmpty(),但是因为它不是空的,所以已经挂了gpa对象。
答案 0 :(得分:1)
您可以递归迭代字段并查看它们是否都为空:
function allNull(obj) {
for(var key in obj) {
if (typeof obj[key] === 'object' && !allNull(obj[key])) {
return false;
} else if (typeof obj[key] !== 'undefined' && typeof obj[key] !== 'object' && obj[key] !== null) {
return false;
}
}
return true;
}