Deep Clone an Object in JavaScript
Published on
NaNA JavaScript function to create a deep clone of an object, including nested objects and arrays.
function deepClone(obj) { // Return the input if it's not an object if (obj === null || typeof obj !== 'object') { return obj; } // Clone arrays if (Array.isArray(obj)) { return obj.map(deepClone); } // Clone objects return Object.fromEntries( Object.entries(obj) .map(([key, value]) => [key, deepClone(value)]) ); }
Usage example
const original = { a: 1, b: { c: 2, d: [3, 4] } }; const cloned = deepClone(original); console.log(cloned); console.log(cloned.b === original.b); // false console.log(cloned.b.d === original.b.d); // false