【问题标题】:Check is object exists in property [duplicate]检查属性中是否存在对象[重复]
【发布时间】:2026-02-13 03:35:01
【问题描述】:

我正在尝试查看该属性是否包含另一个对象。

我有这个:

{
  "prop1": "value",
  "prop2": "value",
  "prop4": "value",
  "prop5": {
      "innerprop1": "value",
      "innerprop2": "value"
  },
  "prop6": {
      "innerprop3": "value",
      "innerprop4": "value"
  }
}

我想知道任何属性中是否有对象。

任何帮助将不胜感激。

【问题讨论】:

  • obj[property].Constructor === Object 可以解决问题

标签: javascript jquery


【解决方案1】:

请检查prop7

obj = {
  "prop1": "value",
  "prop2": "value",
  "prop4": "value",
  "prop5": {
      "innerprop1": "value",
      "innerprop2": "value"
  },
  "prop6": {
      "innerprop3": "value",
      "innerprop4": "value"
  },
  "prop7": [] // Also an object!
}

for(var key in obj) {

  if(typeof obj[key] === 'object') {
    console.log(key)
  }
}

【讨论】:

    【解决方案2】:

    var yourObject={
      "prop1": "value",
      "prop2": "value",
      "prop4": "value",
      "prop5": {
          "innerprop1": "value",
          "innerprop2": "value"
      },
      "prop6": {
          "innerprop3": "value",
          "innerprop4": "value"
      }
    }
    
    if(typeof yourObject.prop5=='object'){
    console.log("It is object")
    }
    if (typeof yourobject.prop5=='object'){
    }
    

    【讨论】:

      【解决方案3】:

      尝试使用typeof() 方法和Object.values

      1. Object.values 为值创建数组,Array.map() 重新创建带有条件的数组 typeof(a) == 'object'

      var arr ={ "prop1": "value", "prop2": "value", "prop4":"value", "prop5": { "innerprop1": "value","innerprop2": "value" }, "prop6": { "innerprop3":"value", "innerprop4": "value" } }
      
      //returning the keyname
      console.log(Object.keys(arr).filter(a=> typeof(arr[a]) == 'object' ))
      
      var res = Object.values(arr).map(function(a){
      return typeof(a) == 'object'
      })
      
      console.log(res)

      【讨论】:

        【解决方案4】:

        您可以使用typeof 函数,该函数将为对象返回object

        var json = '{ "prop1": "value", "prop2": "value", "prop4": "value", "prop5": { "innerprop1": "value", "innerprop2": "value" }, "prop6": { "innerprop3": "value", "innerprop4": "value" } }';
        jsonObject = JSON.parse(json);
        var keys = Object.keys(jsonObject);
        keys.forEach(function(element){
          console.log(typeof(jsonObject[element]));
        
        })
        

        【讨论】: