对象数组、对象的深拷贝

关于深拷贝、浅拷贝的的简单理解可以参见本人的这篇博客https://blog.csdn.net/sinat_37680470/article/details/81110025

 

开发过程中遇到了数组和对象拷贝的坑,所以在这里记录一下,以便日后查看!

 

        let objArr = [
            {
                name: '小明',
                id: 1
            },
            {
                name: '小王',
                id: 2
            }
        ]
        let getName = [];

        getName.push(objArr[0])
        
        getName.forEach(item => {
            item.name = '小丽';
        })

        console.log(objArr)
        console.log(getName)

在打印值中可以看到,档改变getName中的值时,objArr中的值也会发生改变,这就是一个浅拷贝的过程,当拷贝出来的值发生改变时被拷贝的对象也会发生变化。

实现深拷贝的方法:

1.JSON.parse(JSON.stringify(objArr[1]))

2.使用jq的extend方法

let name = {};

$.extend(true,name, objArr[1])

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值