【问题标题】:javascript - how to check if exists child object value of key in object? [duplicate]javascript - 如何检查对象中键的子对象值是否存在? [复制]
【发布时间】:2018-03-08 08:22:41
【问题描述】:
{
    "cd": {},
    "person": {},
    "p2": {
        "foo1": {},
        "foo2": {}
    }
}

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

"p2" 有子对象。

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

【问题讨论】:

  • 你想检查一个特定的属性是否存在,它是否有任何属性?
  • @FelixKling 我想使用 for 循环检查任何属性

标签: javascript


【解决方案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】:
    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));
    

    【讨论】:

      【解决方案3】:

      这是一种处理null 和undefined 的方法。

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

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

      所以空对象null 和undefined 将返回true(为空),否则返回false。

      【讨论】:

        猜你喜欢
        • 2020-06-18
        • 2010-10-02
        • 1970-01-01
        • 2021-11-25
        • 2019-11-12
        相关资源
        最近更新 更多