push方法 改动一条数据其余数据一同改变就是新增数据绑定在一起的原因与解决方法

113 阅读1分钟

问题

写前端页面的时候遇到一个问题,用push往 数组 中添加新数据(这个数据是原有的,将它加入到另一个新数组中去),发现添加进去 的数据只要改动一条,其他数据也会跟着改变

原因

因为前端对象是一个引用类型的数据,所以在添加的时候添加新数据其实是同一条,添加的是引用值而不是具体数据

解决方法:

使用深拷贝

// a = [];
// b = {};
// a = 要添加数据的数据
// b = 源数据所在数组

let data = Object.assign({}, JSON.parse(JSON.stringify(this.源数据所在数组)));
this.要添加数据的数据.push(data)