2017-07-26 79 views
3

我想查看属性是否包含另一个对象。检查属性中是否存在对象

我有这样的:

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

我想知道如果任何属性的它有一个对象。

任何帮助,将不胜感激。

+0

obj [属性] .Constructor ===对象的伎俩 –

回答

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

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

尝试用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)

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

})