对象深拷贝
JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了 就是利用JSON.stringify 将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象;
深拷贝
function deeoClone(obj) {
// 判断类型是否是引用类型 obj
if (typeof obj !== 'onject' || obj == null) {
return
}
let res = obj instanceof Array ? [] : {}
for (let key in obj) {
if (obj.hasOwnProperty(key)) { //保证key是obj上面的,不是原型链上面的
res[key] = deeoClone(obj[key])
}
}
return res
}
这种利用递归拷贝的也不是特别全面,避免重复造轮子可以用loadsh库中的方法 loadsh.cloneDeep
import cloneDeep from "lodash/cloneDeep";
this.dataList[0] = cloneDeep(arr1);