Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何判断javascript对象是否有子对象_Javascript_Object - Fatal编程技术网

如何判断javascript对象是否有子对象

如何判断javascript对象是否有子对象,javascript,object,Javascript,Object,假设我有一个对象: obj:{ child:{ x:12, y:50 }, key1:"value1", key2:"value2" } 如果要遍历对象,如: for (var i in obj) { } 我如何判断对象是否有子对象,以便遍历它。我知道我可以使用hasOwnProperty方法,但在这种情况下,我不知道子对象的名称是什么。希望此片段可以帮助您: for (var i in obj) { if (obj.hasOwnPr

假设我有一个对象:

obj:{
   child:{
      x:12,
      y:50
   },
   key1:"value1",
   key2:"value2"
}
如果要遍历对象,如:

for (var i in obj) {

}

我如何判断对象是否有子对象,以便遍历它。我知道我可以使用
hasOwnProperty
方法,但在这种情况下,我不知道子对象的名称是什么。

希望此片段可以帮助您:

for (var i in obj) {
    if (obj.hasOwnProperty(i))
        console.log(typeof obj[i])
}

可以使用此选项检查属性是否包含对象:

for (var i in obj) {
    if(obj.hasOwnProperty(i) && obj[i] instanceof Object) {
        // obj[i] is a child object
    }
}
注意:记住函数和数组在Javascript中都是对象。您可以单独测试那些使用
instanceof Function
instance of Array

递归函数的用户:

var obj = { a : { aa : 'aa'
                , ab : 'ab' }
          , b : 'b'
          , c : 'c'
          };


function listKeyValue (o){
   for (var prop in o){
      if(typeof o[prop] === 'object') 
         listKeyValue(o[prop]);
      else 
         console.log(prop,o[prop]);
   }
}

listKeyValue(obj);