【解决】数组中循环插入对象,当上一个对象的值改变后,数组内对象也跟着变化

在循环处理数组时,如果将对象push到新数组而未做深拷贝,会导致所有对象引用同一内存地址。当对象值改变,数组内所有对象都会受影响。通过JSON.parse(JSON.stringify())方法可实现深拷贝,确保每次push都是新对象,避免值的同步变动。

遇到的问题:

循环一个数组,将需要的属性插入到一个对象【newObj】中,然后push到一个数组【newArr】,当每次对象的值改变时,已经插入数组内的对象的值也会随之改变;

 newArr.push(newObj)

解决办法:

每次push到数组【newArr】的时候,对对象【newObj】进行深拷贝;
数组每次push的时候都是引用的同一个对象地址,所以当对象每次改动的时候,数组内的对象也会随之改变;
使用深拷贝就相当于每次都是新建了一个新的对象新的内存地址

newArr.push(JSON.parse(JSON.stringify(newObj)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别改我bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值