前端:对象数组深拷贝

118 阅读1分钟

在写项目代码的时候,忽略了对象深拷贝的问题,导致了一个让人迷惑的复制bug; 今日以此留code,希望下次不在有这个问题导致的bug;

深拷贝

/**
 * @description 对象数组深拷贝
 * */
const deepClone=function(obj){
    let objClone = Array.isArray(obj)?[]:{};
    if(obj && typeof obj==="object"){
        for(var key in obj){
            if(obj.hasOwnProperty(key)){
                //判断ojb子元素是否为对象,如果是,递归复制
                if(obj[key]&&typeof obj[key] ==="object"){
                    objClone[key] = deepClone(obj[key]);
                }else{
                    //如果不是,简单复制
                    objClone[key] = obj[key];
                }
            }
        }
    }
    return objClone;
}