关闭

递归遍历JS的对象的每个属性

标签: JS
454人阅读 评论(0) 收藏 举报
分类:

递归遍历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>


结果如下


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36898次
    • 积分:646
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:3篇
    • 译文:17篇
    • 评论:3条
    最新评论