对象深拷贝
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);
本文作者:张尊娟
本文链接:https://www.cnblogs.com/wszzj/p/12499633.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步