假設我有一個目標:如何判斷JavaScript對象是否有子對象
obj:{
child:{
x:12,
y:50
},
key1:"value1",
key2:"value2"
}
,如果我要穿越的對象,如:
for (var i in obj) {
}
我怎樣才能判斷是否該對象有子對象,所以我可以遍歷它。我知道我可以使用hasOwnProperty
方法,但在這種情況下,我不知道子對象名稱是什麼。
假設我有一個目標:如何判斷JavaScript對象是否有子對象
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) && obj[i] instanceof Object) {
// obj[i] is a child object
}
}
預防事項的注意:請記住,函數和數組都是Javascript中的對象。您可以單獨測試那些使用instanceof Function
和instance of Array
的測試。
希望這個片段將幫助您:
for (var i in obj) {
if (obj.hasOwnProperty(i))
console.log(typeof obj[i])
}
遞歸函數:
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);