js 如何判断一个对象里的属性值是否为空

let obj = { 
name:'',
sex:'',
job:[],
house:'',
sourcesIncome:[]
}

现有一个对象,结构类似以上。有什么方法,可以判断这个对象里的属性值以及数组是否为空,如果全部为空返回true,有一项不为空,则返回false。
如果全是键值就没问题,但是现在还有数组,有什么好的方法,求解!!

字符串的length就是字符串的长度,所以可以用length判断

let obj = { 
    name:'',
    sex:'',
    job:[],
    house:'',
    sourcesIncome:[]
};
let flag = true;
for(let key in obj) {
    if(obj[key] && obj[key].length) {
        flag = false;
    }
}
return flag;
  function isEmpty(obj) {
        if (!obj) {
            //全部为空 返回true
            return true;
        }
        for (const objKey in obj) {
            //有一项有值就返回false
            if (!(!obj[objKey] || obj[objKey].length === 0)) {
                return false;
            }
        }
        return true;
    }

调用例子:var flag=isEmpty(obj);
如果能帮到你,请点击下【采纳】,谢啦

字符串和对象都可以这样判断。

img