背景
理论开发中,解决数据常常会应用到数据拷贝。其实应用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;
发表回复