检查属性中是不是存在对象[重复]

Posted

技术标签:

【中文标题】检查属性中是不是存在对象[重复]【英文标题】:Check is object exists in property [duplicate]检查属性中是否存在对象[重复] 【发布时间】:2018-01-01 17:57:56 【问题描述】:

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

我有这个:


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

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

任何帮助将不胜感激。

【问题讨论】:

obj[property].Constructor === Object 可以解决问题 【参考方案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

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

)

【讨论】:

以上是关于检查属性中是不是存在对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查对象中是不是存在键[重复]

如何在oracle中检查对象是不是存在[重复]

Python:检查范围内是不是存在对象[重复]

检查对象是不是具有属性[重复]

如何检查javascript中的对象中是不是存在键[重复]

检查未知对象中的对象是不是存在的最有效的Javascript方法[重复]