这件事以前可能已经讨论过,但是我还没有找到解决我的问题的方法。
所以,我的问题是这样:
我将对象的值保存到变量中。
const aux = this.myObj;
此后,通过一些操作更改了对象(this.myObj
),但我想保存其初始值并能够将其重新设置为它。
类似的东西:
this.myObj = aux
但是,正如预期的那样,当原始的aux也会被修改。
对此有解决方案吗?
答案 0 :(得分:3)
您需要克隆对象并将其数据保存到另一个变量。
var clone = Object.assign({}, obj);
对于嵌套对象,可以使用各种方法实现深度克隆。对于具有嵌套键-值对的简单结构化对象,其中之一。
var clone = JSON.parse(JSON.stringify(obj));
或使用下划线和lodash之类的库。
答案 1 :(得分:1)
Object.assign({}, obj)
只是复制给定对象的属性值,所以它不是一个很好的解决方法,我建议使用lodash's _.cloneDeep,因为它可以为您进行深度克隆。
您只需要执行以下操作即可。
const aux = _.cloneDeep(this.myObj)