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

时间:2012-06-11 02:53:41

标签: javascript object

假设我有一个对象:

obj:{
   child:{
      x:12,
      y:50
   },
   key1:"value1",
   key2:"value2"
}

如果我想遍历该对象,例如:

for (var i in obj) {

}

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

3 个答案:

答案 0 :(得分:1)

希望这段代码能为您提供帮助:

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

答案 1 :(得分:1)

您可以使用它来检查属性是否包含对象:

for (var i in obj) {
    if(obj.hasOwnProperty(i) && obj[i] instanceof Object) {
        // obj[i] is a child object
    }
}

注意事项:请记住,函数和数组都是Javascript中的对象。您可以针对使用instanceof Functioninstance of Array的人进行单独测试。

答案 2 :(得分:0)

递归函数:

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