如何判断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);