{"ScriptPreparationCode":"var myArray = [{itemType:\u0022text\u0022,itemId:\u0022zy5mhESQ\u0022,text:\u0022\u0022,\u0022sound\u0022:\u0022\u0022},{itemType:\u0022micromodule\u0022,itemId:\u0022CczUjEMY\u0022,id:57191,scores:{rightAnswer:1000,partialAnswer:500,wrongAnswer:0}},{itemType:\u0022text\u0022,itemId:\u0022RSOqEJzl\u0022,text:\u0022\u0022,sound:\u0022\u0022}];\r\n\r\nvar myCopy = null;\r\n\r\nfunction recursiveDeepCopy(o) {\r\n var newO,\r\n i;\r\n \r\n if (typeof o !== \u0027object\u0027) {\r\n return o;\r\n }\r\n if (!o) {\r\n return o;\r\n }\r\n \r\n if (\u0027[object Array]\u0027 === Object.prototype.toString.apply(o)) {\r\n newO = [];\r\n for (i = 0; i \u003C o.length; i \u002B= 1) {\r\n newO[i] = recursiveDeepCopy(o[i]);\r\n }\r\n return newO;\r\n }\r\n \r\n newO = {};\r\n for (i in o) {\r\n if (o.hasOwnProperty(i)) {\r\n newO[i] = recursiveDeepCopy(o[i]);\r\n }\r\n }\r\n return newO;\r\n }","TestCases":[{"Name":"cloneDeep","Code":"myCopy = _.cloneDeep(myArray);","IsDeferred":false},{"Name":"JSON","Code":"myCopy = JSON.parse(JSON.stringify(myArray));","IsDeferred":false},{"Name":"DeepCopy","Code":"myCopy = recursiveDeepCopy(myArray);","IsDeferred":false}]}