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);

 

posted @ 2025-04-06 15:55  罗毅豪  阅读(30)  评论(0)    收藏  举报