js对象深拷贝

时间:2021-05-22 19:54:04

一、利用扩展运算符...对数组中嵌套对象进行深拷贝

 

var arr=[{a:1,b:2},{c:1,d:2}];
    var arr2=[];
    
    arr.forEach(item=>{
      var {...obj}=item;
      arr2.push(obj);
    })
    arr2[1].d=7
    
    console.log(arr,arr2)

js对象深拷贝

 二、利用lodash库的cloneDeep方法

var arr=[{a:1,b:2},{c:1,d:2}];
var arr2=_.cloneDeep(arr)

    
arr2[1].d=7;
console.log(arr,arr2)

js对象深拷贝

三、JSON.parse(JSON.stringify(objectToClone))

var arr=[{a:1,b:2},{c:1,d:2}];
var arr2=JSON.parse(JSON.stringify(arr));
    
arr2[1].d=7;
console.log(arr,arr2)

js对象深拷贝

注:这种方法要求对象中的属性值不能是函数