代码解释
在前端开发中,深拷贝是一个常见的需求,特别是在处理复杂数据结构时,如嵌套对象或数组。深拷贝意味着创建一个新的对象或数组,并且递归地复制原对象或数组中的所有属性(包括嵌套的对象和数组),使得新对象与原对象在内存中是完全独立的。
实现方法
使用JSON数列化与反数列化
let newObj = JSON.parse(JSON.stringify(oldObj))使用递归实现
export function deepClone(obj){ if(typeof obj !== 'object' || obj === null){ return obj } if(obj instanceof Date){ return new Date(obj.getTime()) } if(obj instanceof RegExp){ return new RegExp(obj) } if(Array.isArray(obj)){ return obj.map(item => deepClone(item)) } const cloneObj = {}; for(let key in obj){ if(obj.hasOwnProperty(key)){ cloneObj[key] = deepClone(obj[key]) } } return cloneObj }使用第三方库(如lodash的cloneDeep)
const _ = require('lodash'); const original = { /* ...复杂对象结构... */ }; const deepCopy = _.cloneDeep(original);
本文链接:https://blog.smallhao.fun/?id=8 转载需授权!
暂无评论
发表评论