{"ScriptPreparationCode":"var MyObject = {\r\n description: \u0027Creates a deep copy of source, which should be an object or an array.\u0027,\r\n myNumber: 123456789,\r\n myBoolean: true,\r\n jayson: {\r\n stringify: \u0027JSON.stringify() method converts a JavaScript value to a JSON string....\u0027,\r\n parse: \u0027JSON.parse() method parses a JSON string...\u0027\r\n }\r\n};\r\n\r\nvar myCopy = null;\r\nvar s = \u0027\u0027;\r\nfunction deepcopy(o) {\r\n if (o instanceof Array) {\r\n return Array.from(o, deepcopy)\r\n }\r\n const c = Object.assign({}, o)\r\n for (const k of Object.keys(o)) {\r\n if (typeof o[k] === \u0027object\u0027 \u0026\u0026 o[k]) {\r\n c[k] = deepcopy(o[k])\r\n }\r\n }\r\n return c\r\n }","TestCases":[{"Name":"Lodash cloneDeep","Code":"myCopy = _.cloneDeep(MyObject);","IsDeferred":false},{"Name":"Native structuredClone","Code":"myCopy = structuredClone(MyObject);","IsDeferred":false},{"Name":"JSON Parse","Code":"myCopy = JSON.parse(JSON.stringify(MyObject));","IsDeferred":false},{"Name":"Indirect JSON Parse","Code":"s = JSON.stringify(MyObject); myCopy = JSON.parse(s);","IsDeferred":false},{"Name":"In-house deepcopy","Code":"myCopy = deepcopy(MyObject);","IsDeferred":false}]}