遞歸遍歷JS的對象的每個屬性
1)使用constructor
<span style="font-size:14px;">var model = {
fullName: {
firstName: 'paradise',
lastName: 'fang'
},
age: 25,
sex: 'female',
array : [1,2,3]
};
buildModel(model);
function buildModel(model) {
for (var i in model) {
if (model[i] != null) {
if (model[i].constructor == Object) {
buildModel(model[i]);
} else {
console.log(i + "\t" + model[i]);
}
}
}
}</span>
結果如下圖:
這裏使用了constructor,而不是typeof
constructor判斷對象的類型,會比typeof更精確,constructor能獲取一些複雜對象的類型,typeof做不到。
http://jingyan.baidu.com/article/a681b0de331a733b18434628.html
2)使用typeof
<span style="font-size:14px;">var model = {
fullName: {
firstName: 'paradise',
lastName: 'fang'
},
age: 25,
sex: 'female',
array : [1,2,3]
};
buildModel(model);
function buildModel(model) {
for (var i in model) {
if (model[i] != null) {
if (typeof model[i] == "object") {
buildModel(model[i]);
} else {
console.log(i + "\t" + model[i]);
}
}
}
}</span>