js手写deepClone深拷贝
背景
【js手写deepClone深拷贝】实际开发中,处理数据经常会使用到数据拷贝。其实使用JSON.stringify()与JSON.parse()来实现深拷贝是很不错的选择。
但是当拷贝的数据为undefined,function(){}等时拷贝会为空,这时就需要采用递归拷贝。
使用JSON实现拷贝时,注意拷贝数据,看是否适合使用。
以下是手写简单深拷贝
代码
/**
* @param obj
* @description 深拷贝
*/
export const deepClone = (obj: any) => {
// 判断是否需要递归
if (typeof obj !== 'object' || obj == null) {
return obj;
}
let result: any;
if (obj instanceof Array) {
result = [];
} else {
result = {};
}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = deepClone(obj[key]);
}
}
return result;
};
export default deepClone;
推荐阅读
- 洛谷|P1923 【深基9.例4】求第 k 小的数
- 拿捏了!这样的购物体验才深得用户心
- 《深入理解Java虚拟机》第3版学习笔记,涵盖全书精华,请查收!
- 数据结构|小肥柴慢慢手写数据结构(C篇)(3-2 Stack应用举例)
- 2021深圳杯A题|常用的统计学指标及其含义
- 深度学习|毕设-卷积神经网络/深度学习/yolo
- 深度学习|卷积神经网络CNN5
- 对象、数组、函数等多种数据类型的深浅克隆(拷贝)
- 微服务|ElasticSearch由浅入深
- java底层JDK|java底层JDK Logging日志模块处理细节深入分析