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

时间:2017-09-27 00:50:19

标签: javascript

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

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

"p2"有子对象。

如何检查是否存在子对象值?

3 个答案:

答案 0 :(得分:1)

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));

答案 1 :(得分:1)

对于特定的子名称,您可以尝试:

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
}

答案 2 :(得分:0)

这是一种处理nullundefined的方式。

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

如果您担心继承的可枚举属性,可以添加.hasOwnProperty()支票。

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