js数组深拷贝与浅拷贝

js数组深拷贝 和 浅拷贝


let arr = [{name:'wll'},{age:'32'}]
let newArr1 = arr
let newArr2 = arr.slice()
let newArr3 = arr.concat()
let newArr4 = JSON.parse(JSON.stringify(arr))
let newArr5 = [...arr]
let [...newArr6] = arr
let newArr7 = Array.from(arr)
arr[0].name='fxg'
arr[1].age='39'
console.log(arr,'arr')
console.log(newArr1,'arr1')  //[{name: "fxg"},{age: "39"}]
console.log(newArr2,'arr2') //[{name: "fxg"},{age: "39"}]
console.log(newArr3,'arr3') //[{name: "fxg"},{age: "39"}]
console.log(newArr4,'arr4') //[{name: "wll"},{age: "32"}]
console.log(newArr5,'arr5') //[{name: "fxg"},{age: "39"}]
console.log(newArr6,'arr6') //[{name: "fxg"},{age: "39"}]
console.log(newArr7,'arr7') //[{name: "fxg"},{age: "39"}]


let arrA = [1,2,3]
let arrB = []
let arrC = Array.from(arrA);
for(let i=0; i<arrA.length;i++){
    arrB[i] = arrA[i]
}
arrA.push(4)
arrB.pop()
arrC.pop()
console.log(arrA,arrB,arrC) //[1, 2, 3, 4],[1, 2],[1, 2]

js数组浅拷贝


let a = [{name:'大西瓜'}];
let b = [...a]
b[0].name = '小虾米';
console.log(a[0].name)// 小虾米

js数组深拷贝


let a = [{name:'大西瓜'}];
let b = [...a.map(infos=>{
    return Object.assign({},infos)
})]
b[0].name="小虾米";
console.log(a[0].name)//大西瓜


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值