使用递归实现深拷贝

  function deepClone(obj) {        //判断拷贝的obj是对象还是数组
        var objClone = Array.isArray(obj) ? [] : {};
        if (obj && typeof obj === "object") { //obj不能为空,并且是对象或者是数组 因为null也是object
            for (key in obj) {
                if (obj.hasOwnProperty(key)) {
                         //obj里面属性值不为空并且还是对象,进行深度拷贝
                    if (obj[key] && typeof obj[key] === "object") { 
                        objClone[key] = deepClone(obj[key]); //递归进行深度的拷贝
                    } else {
                        objClone[key] = obj[key]; //直接拷贝
                    }
                }
            }
        }
        return objClone;
    }

 

 
 
posted @   大强子pq  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示