在属性不同类型的 Javascript 对象中查找假值?

All*_*lan 5 javascript

我有一个具有这种结构的对象。

const object = {
  property1: null,
  property2: {
    array1: [],
    array2: []
  },
  property3: {
    prop1: null,
    prop2: null
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要检查对象中的每个属性或每个属性中的每个值,如果它是假的 - null 或空数组,然后用它做一些事情。否则就留下它吧。

考虑到某些属性具有嵌套属性等,我不确定如何做到这一点。

非常感谢所有帮助。

noa*_*dev 0

这将是递归的完美示例,因为它会动态地深入了解每个嵌套对象的对象结构。

const object = {
  property1: null,
  property2: {
    array1: [],
    array2: []
  },
  property3: {
    prop1: null,
    prop2: null
  }
}

const findFalsey = obj => {
    for(let key in obj) {
        if(typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
            findFalsey(obj[key])
        }
        if(!obj[key] || (Array.isArray(obj[key]) && obj[key].length === 0 )) {
            console.log('found falsey value')
        }
    }
}

findFalsey(object)
Run Code Online (Sandbox Code Playgroud)