{"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 regularMarkets: {\r\n\t1: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 10100, label: \u0022Match Result --- 2\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 10100, label: \u0022Match Result\u0022}\r\n\t\t]\r\n\t},\r\n\t2: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 20200, label: \u0022Both Teams to Score --- 2\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 20200, label: \u0022Both Teams to Score\u0022}\r\n\t\t]\r\n\t},\r\n\t3: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 30300, label: \u0022Draw no Bet --- 2\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 30300, label: \u0022Draw no Bet\u0022}\r\n\t\t]\r\n\t},\r\n\t4: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 40400, label: \u0022Double Chance --- 2\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 40400, label: \u0022Double Chance\u0022}\r\n\t\t]\r\n\t},\r\n\t5: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 50500, label: \u00223-way Handicap --- 2\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 50500, label: \u00223-way Handicap\u0022}\r\n\t\t]\r\n\t},\r\n\t6: {\r\n\t\tmarketGroupId: \u002201\u0022\r\n\t},\r\n\t15: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 151501.5, label: \u0022Match Goals | 1.5\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 151502.5, label: \u0022Match Goals | 2.5\u0022},\r\n\t\t\t{id: \u0022\u0022, sortOrder: 151503.5, label: \u0022Match Goals | 3.5\u0022}\r\n\t\t]\r\n\t},\r\n\t20: {\r\n\t\tmarketGroupId: \u002205\u0022\r\n\t},\r\n\t60: {\r\n\t\tmarkets: [\r\n\t\t\t{id: \u0022\u0022, sortOrder: 606000, label: \u0022Odd/Even number of Goals\u0022}\r\n\t\t]\r\n\t}\r\n },\r\n groupedMarkets: {\r\n\t05: {\r\n\t\tgrouping: {\r\n\t\t\t10: {\r\n\t\t\t\tgrouping: {\r\n\t\t\t\t\tN5MTCO: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 210101.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Corners | 1.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 210202.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Corners | 2.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 210303.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Corners | 3.5\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN5MTTI: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 200101.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Throw Ins | 1.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 200202.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Throw Ins | 2.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 200303.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Throw Ins | 3.5\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN5MTC: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 220202.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Cards | 2.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 220303.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Cards | 3.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 220404.5, label: \u0022Next 5 mins (10:00 - 14:59) | Total Cards | 4.5\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tmarketGroupSortOrder: [\r\n\t\t\t\t\t{group: \u0022N5MTTI\u0022, sort: 20},\r\n\t\t\t\t\t{group: \u0022N5MTCO\u0022, sort: 21},\r\n\t\t\t\t\t{group: \u0022N5MTC\u0022, sort: 22}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t05: {\r\n\t\t\t\tgrouping: {\r\n\t\t\t\t\tN5MTCO: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 210101.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Corners | 1.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 210202.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Corners | 2.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 210303.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Corners | 3.5\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN5MTTI: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 200101.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Throw Ins | 1.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 200202.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Throw Ins | 2.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 200303.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Throw Ins | 3.5\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN5MTC: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 220202.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Cards | 2.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 220303.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Cards | 3.5\u0022},\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 220404.5, label: \u0022Next 5 mins (05:00 - 09:59) | Total Cards | 4.5\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tmarketGroupSortOrder: [\r\n\t\t\t\t\t{group: \u0022N5MTTI\u0022, sort: 20},\r\n\t\t\t\t\t{group: \u0022N5MTCO\u0022, sort: 21},\r\n\t\t\t\t\t{group: \u0022N5MTC\u0022, sort: 22}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t},\r\n\t\tsortOrder: 20,\r\n\t\tmarketGroupSortOrder: [\r\n\t\t\t{group: \u002205\u0022, sort: 5},\r\n\t\t\t{group: \u002210\u0022, sort: 10}\r\n\t\t]\r\n\t},\r\n 01: {\r\n\t\tgrouping: {\r\n\t\t\t10: {\r\n\t\t\t\tgrouping: {\r\n\t\t\t\t\tN1MTIA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 80800, label: \u0022Next 1 min (10:00 - 10:59) | Throw In Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MGKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 60600, label: \u0022Next 1 min (10:00 - 10:59) | Goal Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MFKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 70700, label: \u0022Next 1 min (10:00 - 10:59) | Free Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tmarketGroupSortOrder: [\r\n\t\t\t\t\t{group: \u0022N1MGKA\u0022, sort: 6},\r\n\t\t\t\t\t{group: \u0022N1MFKA\u0022, sort: 7},\r\n\t\t\t\t\t{group: \u0022N1MTIA\u0022, sort: 8}\r\n\t\t\t\t]\r\n\t\t },\r\n 11: {\r\n\t\t\t\tgrouping: {\r\n\t\t\t\t\tN1MGKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 60600, label: \u0022Next 1 min (11:00 - 10:59) | Goal Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MTIA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 80800, label: \u0022Next 1 min (11:00 - 10:59) | Throw In Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MFKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 70700, label: \u0022Next 1 min (11:00 - 10:59) | Free Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tmarketGroupSortOrder: [\r\n\t\t\t\t\t{group: \u0022N1MGKA\u0022, sort: 6},\r\n\t\t\t\t\t{group: \u0022N1MFKA\u0022, sort: 7},\r\n\t\t\t\t\t{group: \u0022N1MTIA\u0022, sort: 8}\r\n\t\t\t\t]\r\n\t\t },\r\n 08: {\r\n\t\t\t\tgrouping: {\r\n\t\t\t\t\tN1MFKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 70700, label: \u0022Next 1 min (08:00 - 08:59) | Free Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MTIA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 80800, label: \u0022Next 1 min (08:00 - 08:59) | Throw In Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MGKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 60600, label: \u0022Next 1 min (08:00 - 08:59) | Goal Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tmarketGroupSortOrder: [\r\n\t\t\t\t\t{group: \u0022N1MGKA\u0022, sort: 6},\r\n\t\t\t\t\t{group: \u0022N1MFKA\u0022, sort: 7},\r\n\t\t\t\t\t{group: \u0022N1MTIA\u0022, sort: 8}\r\n\t\t\t\t]\r\n\t\t\t},\r\n 09: {\r\n\t\t\t\tgrouping: {\r\n\t\t\t\t\tN1MTIA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 80800, label: \u0022Next 1 min (09:00 - 09:59) | Throw In Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MGKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 60600, label: \u0022Next 1 min (09:00 - 09:59) | Goal Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t},\r\n\t\t\t\t\tN1MFKA: {\r\n\t\t\t\t\t\tgrouping: {},\r\n\t\t\t\t\t\tmarkets: [\r\n\t\t\t\t\t\t\t{id: \u0022\u0022, sortOrder: 70700, label: \u0022Next 1 min (09:00 - 09:59) | Free Kick Awarded\u0022}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tmarketGroupSortOrder: [\r\n\t\t\t\t\t{group: \u0022N1MGKA\u0022, sort: 6},\r\n\t\t\t\t\t{group: \u0022N1MFKA\u0022, sort: 7},\r\n\t\t\t\t\t{group: \u0022N1MTIA\u0022, sort: 8}\r\n\t\t\t\t]\r\n\t\t\t}\r\n },\r\n\t\tsortOrder: 6,\r\n\t\tmarketGroupSortOrder: [\r\n\t\t\t{group: \u002208\u0022, sort: 8},\r\n\t\t\t{group: \u002209\u0022, sort: 9},\r\n\t\t\t{group: \u002210\u0022, sort: 10},\r\n\t\t\t{group: \u002211\u0022, sort: 11}\r\n\t\t]\t\t\r\n }\r\n }\r\n}\r\n\r\nvar myCopy = null;\r\n\r\nfunction clone(obj) {\r\n\tif(obj === null || typeof obj !== \u0027object\u0027)\r\n \treturn obj;\r\n \tvar target = obj instanceof Array ? [] : {};\r\n \r\n \tfor (var i in obj) {\r\n \ttarget[i] = clone(obj[i]);\r\n\t}\r\n \r\n\treturn target;\r\n}\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":"Lodash CloneDeep","Code":"myCopy = _.cloneDeep(MyObject);","IsDeferred":false},{"Name":"Json Clone","Code":"myCopy = JSON.parse(JSON.stringify(MyObject));","IsDeferred":false},{"Name":"recursiveDeepCopy","Code":"myCopy = recursiveDeepCopy(MyObject);","IsDeferred":false},{"Name":"clone","Code":"myCopy = clone(MyObject);","IsDeferred":false}]}