检查是属性中存在的对象

时间:2017-07-26 12:05:19

标签: javascript jquery

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

我有这个:

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

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

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:3)

请检查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)
  }
}

答案 1 :(得分: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'){
}

答案 2 :(得分:2)

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

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

    
    
    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)
    
    
    

答案 3 :(得分:2)

您可以使用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]));

})