前端深拷贝
摘要:代码解释 在前端开发中,深拷贝是一个常见的需求,特别是在处理复杂数据结构时,如嵌套对象或数组。深拷贝意味着创建一个新的对象或数组,并且递归地复制原对象或数组中的所有属性(包括嵌套的对象和数组),使得新对象与原对象在内存中是完全独立的。 实现方法 使用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 =<!--autointro-->...
代码解释
在前端开发中,深拷贝是一个常见的需求,特别是在处理复杂数据结构时,如嵌套对象或数组。深拷贝意味着创建一个新的对象或数组,并且递归地复制原对象或数组中的所有属性(包括嵌套的对象和数组),使得新对象与原对象在内存中是完全独立的。
实现方法
使用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 转载需授权!
Chen’Blog版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!