const deepClone = (obj) => { if (obj === null || typeof obj !== "object") return obj; let clone = Array.isArray(obj) ? [] : {}; for (const key in obj) { if (obj.hasOwnProperty(key)) { clone[key] = obj[key] instanceof Date ? new Date(obj[key].getTime()) : deepClone(obj[key]); } } return clone; }; // example // const original = { a: 1, b: { c: new Date() } }; // const clone = deepClone(original);