javascript - 如何检查对象中是否存在键的子对象值?

问题描述:

{ 
    "cd": {}, 
    "person": {}, 
    "p2": { 
     "foo1": {}, 
     "foo2": {} 
    } 
} 

"cd"没有子对象(空对象)。

"p2"有子对象。

如何检查是否存在子对象值?javascript - 如何检查对象中是否存在键的子对象值?

+0

你想检查它是否存在任何属性的特定属性? –

+0

@FelixKling我想检查任何使用for循环的属性 – Yunhee

function hasChild(obj){ 
    return !!Object.keys(obj).length; 
} 
var obj = { 
    "cd": {}, 
    "person": {}, 
    "p2": { 
     "foo1": {}, 
     "foo2": {} 
    } 
}; 
console.log(hasChild(obj.cd)); 
console.log(hasChild(obj.p2)); 

对于具体的孩子的名字,你可以试试这个:

var object = { 
    "cd": {}, 
    "person": {}, 
    "p2": { 
     "foo1": {}, 
     "foo2": {} 
    } 
} 

if (object.cd.hasOwnProperty("childName")) { 
// Do some stuff here 
} 

,如果你正在寻找任何儿童到对象,你可以试试这个

const objectToCheckIfHasChildren = object.cd; 
const children = Object.keys(objectToCheckIfHasChildren); 

if (children.length > 0) { 
    // then children has at least one child 
} 

这里有一种方式会同样处理nullundefined

function isEmpty(obj) { 
    for (const _ in obj) return false; 
    return true; 
} 

如果你担心继承,枚举的属性,您可以添加一个.hasOwnProperty()检查。

因此,一个空对象nullundefined将返回true(为空),否则返回false