/**
* 深浅克隆
* @param target 需要克隆的原始值
* @param deep 是否深度克隆 默认为true
* @returns 克隆后的新值
*/
export function deepClone(target: any, deep = true): any {
if (Array.isArray(target)) {
return target.map(item => (deep ? deepClone(item) : item));
} else if (Object.prototype.toString.call(target) === "[object Object]" && target !== null) {
return Object.keys(target).reduce((obj: any, key) => {
obj[key] = deep ? deepClone(target[key]) : target[key];
return obj;
}, {});
} else {
return target;
}
}
深浅克隆(TS)
于 2022-03-13 20:21:07 首次发布