{"ScriptPreparationCode":"var testArray = [{\r\n description: \u0027Random description.\u0027,\r\n testNumber: 123456789,\r\n testBoolean: true,\r\n testObject: {\r\n testString: \u0027test string\u0027,\r\n testNumber: 12345\r\n },\r\n testArray: [{\r\n myName: \u0027test name\u0027,\r\n myNumber: 123245\r\n }]\r\n}, {\r\n description: \u0027Random description.\u0027,\r\n testNumber: 123456789,\r\n testBoolean: true,\r\n testObject: {\r\n testString: \u0027test string\u0027,\r\n testNumber: 12345\r\n },\r\n testArray: [{\r\n myName: \u0027test name\u0027,\r\n myNumber: 123245\r\n }]\r\n}];\r\n\r\nvar testCopy = null;\r\n\r\nvar deepClone = function(obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.map(deepClone)\r\n } else {\r\n var out = {};\r\n const keys = Object.keys(obj);\r\n for (let i = 0, l = keys.length; i \u003C l; i\u002B\u002B) {\r\n const key = keys[i];\r\n out[key] = deepClone(obj[key]);\r\n }\r\n return out\r\n }\r\n return obj;\r\n};","TestCases":[{"Name":"Lodash cloneDeep","Code":"testCopy = _.cloneDeep(testArray);","IsDeferred":false},{"Name":"Native JSON parse","Code":"testCopy = JSON.parse(JSON.stringify(testArray));","IsDeferred":false},{"Name":"Recursive deep clone","Code":"testCopy = deepClone(testArray);","IsDeferred":false},{"Name":"structuredClone","Code":"testCopy = structuredClone(testArray);","IsDeferred":false}]}