JS之将数组浅拷贝变成深拷贝
我使用
const conditions = [ ...item.value.conditions ];
拷贝出一个新数组,但是当我修改新数组的元素,原数组也发生了变化,因此我判定扩展运算符为浅拷贝。
修改为深拷贝的方法为:
const conditions = JSON.parse(JSON.stringify(item.value.conditions));
即可。
使用 JSON.parse(JSON.stringify()) 方法可进行简单对象的深拷贝,
但它有一些局限性,比如无法处理函数、正则表达式等特殊对象。
可以使用lodash的CloneDeep方法实现完全的深拷贝。
import _ from 'lodash';
const conditions = _.cloneDeep(item.value.conditions);

浙公网安备 33010602011771号