遇到的问题:
循环一个数组,将需要的属性插入到一个对象【newObj】中,然后push到一个数组【newArr】,当每次对象的值改变时,已经插入数组内的对象的值也会随之改变;
newArr.push(newObj)
解决办法:
每次push到数组【newArr】的时候,对对象【newObj】进行深拷贝;
数组每次push的时候都是引用的同一个对象地址,所以当对象每次改动的时候,数组内的对象也会随之改变;
使用深拷贝就相当于每次都是新建了一个新的对象新的内存地址
newArr.push(JSON.parse(JSON.stringify(newObj)))
在循环处理数组时,如果将对象push到新数组而未做深拷贝,会导致所有对象引用同一内存地址。当对象值改变,数组内所有对象都会受影响。通过JSON.parse(JSON.stringify())方法可实现深拷贝,确保每次push都是新对象,避免值的同步变动。

1万+

被折叠的 条评论
为什么被折叠?



