JS之將數(shù)組淺拷貝變成深拷貝
我使用
const conditions = [ ...item.value.conditions ];
拷貝出一個新數(shù)組,但是當我修改新數(shù)組的元素,原數(shù)組也發(fā)生了變化,因此我判定擴展運算符為淺拷貝。
修改為深拷貝的方法為:
const conditions = JSON.parse(JSON.stringify(item.value.conditions));
即可。
使用 JSON.parse(JSON.stringify()) 方法可進行簡單對象的深拷貝,
但它有一些局限性,比如無法處理函數(shù)、正則表達式等特殊對象。
可以使用lodash的CloneDeep方法實現(xiàn)完全的深拷貝。
import _ from 'lodash';
const conditions = _.cloneDeep(item.value.conditions);

浙公網(wǎng)安備 33010602011771號