js深度克隆

//var arr = [1,2,[11,22]];
var arr = {
    name:"xiao",
    age:{
        first:"diyi",
        two:"第二"
    }
};
function deepCopy(parm){
    let res;
    if(Object.prototype.toString.call(parm) == "[object Array]"){   //数组
        res = [];
        for(var i = 0;i < parm.length;i++){
            res[i] = deepCopy(parm[i]);
        }
    }else if(Object.prototype.toString.call(parm) == "[object Object]"){  //对象
        res = {};
        for(var i in parm){
            res[i] = deepCopy(parm[i]);
        }
    }else{
        return parm;
    }
    return res;
}
var newarr = deepCopy(arr);
//arr[1] = "xx";
arr.name = "gejin";
console.log(newarr);

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理