16 lines
277 B
TypeScript
16 lines
277 B
TypeScript
export function deepClone(obj) {
|
|
if (typeof obj !== 'object' || obj === null) {
|
|
return obj;
|
|
}
|
|
|
|
let clone = Array.isArray(obj) ? [] : {};
|
|
|
|
for (let key in obj) {
|
|
if (obj.hasOwnProperty(key)) {
|
|
clone[key] = deepClone(obj[key]);
|
|
}
|
|
}
|
|
|
|
return clone;
|
|
}
|