js深拷贝对象数组

为什么需要深拷贝?在js中,基本数据类型的传递方式为值传递,对象的传递方式为引用传递

方法一(简单粗暴):

 newArray= [].concat(JSON.parse(JSON.stringify(_oldArray)));

方法二:
newArray=Array.prototype.map.call(oldArray,function(elem){
    return deepCopy(elem);
})||[];

function deepCopy(obj){
    if(typeof obj != 'object'){
        return obj;
    }
    var newobj = {};

    for ( var attr in obj) {
        newobj[attr] = deepCopy(obj[attr]);
    }
    return newobj;
}

你可能感兴趣的:(js深拷贝对象数组)