{"ScriptPreparationCode":"var obj = [\r\n {\r\n \u0022_id\u0022: \u00225efb084ba9205ffff8855aa6\u0022,\r\n \u0022index\u0022: 0,\r\n \u0022guid\u0022: \u00223ecf6fbe-383a-4b9b-b228-31ae7658d907\u0022,\r\n \u0022isActive\u0022: false,\r\n \u0022balance\u0022: \u0022$3,023.25\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 26,\r\n \u0022eyeColor\u0022: \u0022green\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Mcneil\u0022,\r\n \u0022last\u0022: \u0022Short\u0022\r\n },\r\n \u0022company\u0022: \u0022NEPTIDE\u0022,\r\n \u0022email\u0022: \u0022mcneil.short@neptide.net\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (967) 599-3405\u0022,\r\n \u0022address\u0022: \u0022880 Montgomery Street, Innsbrook, Oregon, 8908\u0022,\r\n \u0022about\u0022: \u0022Mollit magna consequat velit adipisicing ea mollit et ea esse id ea deserunt. Est elit consequat velit id duis laborum consectetur tempor eu sunt. Do excepteur laborum do cillum magna fugiat esse. Amet tempor culpa quis dolore exercitation eu sunt ea do ipsum officia amet.\u0022,\r\n \u0022registered\u0022: \u0022Friday, March 11, 2016 9:36 AM\u0022,\r\n \u0022latitude\u0022: \u0022-64.253646\u0022,\r\n \u0022longitude\u0022: \u0022-121.37712\u0022,\r\n \u0022tags\u0022: [\r\n \u0022irure\u0022,\r\n \u0022laboris\u0022,\r\n \u0022fugiat\u0022,\r\n \u0022non\u0022,\r\n \u0022amet\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Cara Finley\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Ginger Watkins\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Stone Rocha\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Mcneil! You have 6 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022strawberry\u0022\r\n },\r\n {\r\n \u0022_id\u0022: \u00225efb084baad2546ad77de966\u0022,\r\n \u0022index\u0022: 1,\r\n \u0022guid\u0022: \u0022b2353e2e-fecf-4c7e-98d4-a326976d7861\u0022,\r\n \u0022isActive\u0022: true,\r\n \u0022balance\u0022: \u0022$1,518.64\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 34,\r\n \u0022eyeColor\u0022: \u0022brown\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Erma\u0022,\r\n \u0022last\u0022: \u0022Mcconnell\u0022\r\n },\r\n \u0022company\u0022: \u0022GEEKETRON\u0022,\r\n \u0022email\u0022: \u0022erma.mcconnell@geeketron.us\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (931) 555-3487\u0022,\r\n \u0022address\u0022: \u0022618 Ferry Place, Alfarata, Kansas, 4613\u0022,\r\n \u0022about\u0022: \u0022Irure quis nostrud minim dolor ullamco proident labore tempor ex. Aute eiusmod non esse irure minim et. Laboris irure enim nisi esse anim commodo laboris labore magna dolore sit non. Officia fugiat labore cillum commodo id. Voluptate ullamco est do adipisicing esse elit qui incididunt excepteur exercitation aliqua anim minim.\u0022,\r\n \u0022registered\u0022: \u0022Sunday, January 20, 2019 3:32 PM\u0022,\r\n \u0022latitude\u0022: \u002264.002747\u0022,\r\n \u0022longitude\u0022: \u0022-12.374574\u0022,\r\n \u0022tags\u0022: [\r\n \u0022consequat\u0022,\r\n \u0022ad\u0022,\r\n \u0022irure\u0022,\r\n \u0022nisi\u0022,\r\n \u0022exercitation\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Celina Martin\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Pacheco Hess\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Tammi Nelson\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Erma! You have 7 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022apple\u0022\r\n },\r\n {\r\n \u0022_id\u0022: \u00225efb084bc0adc80ba18b1667\u0022,\r\n \u0022index\u0022: 2,\r\n \u0022guid\u0022: \u0022ec7c100b-869e-4bb1-9774-ecf0f2bf8d6b\u0022,\r\n \u0022isActive\u0022: true,\r\n \u0022balance\u0022: \u0022$3,466.92\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 36,\r\n \u0022eyeColor\u0022: \u0022blue\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Young\u0022,\r\n \u0022last\u0022: \u0022Cobb\u0022\r\n },\r\n \u0022company\u0022: \u0022FANFARE\u0022,\r\n \u0022email\u0022: \u0022young.cobb@fanfare.me\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (831) 508-3651\u0022,\r\n \u0022address\u0022: \u0022819 Brigham Street, Hayden, Maryland, 4133\u0022,\r\n \u0022about\u0022: \u0022Amet sit do in et adipisicing eiusmod officia laboris ad sint cupidatat. Reprehenderit in aliquip exercitation et velit laboris elit reprehenderit. Sit officia do consequat nisi id consequat reprehenderit excepteur cupidatat aliquip magna. Quis mollit ullamco exercitation nostrud. Laborum laboris ut est reprehenderit nostrud deserunt non aute minim proident incididunt mollit exercitation quis. Nisi irure nostrud cillum eiusmod.\u0022,\r\n \u0022registered\u0022: \u0022Sunday, October 4, 2015 7:43 PM\u0022,\r\n \u0022latitude\u0022: \u002230.661339\u0022,\r\n \u0022longitude\u0022: \u002257.020556\u0022,\r\n \u0022tags\u0022: [\r\n \u0022adipisicing\u0022,\r\n \u0022irure\u0022,\r\n \u0022eiusmod\u0022,\r\n \u0022est\u0022,\r\n \u0022minim\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Yang Lindsey\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Cortez Yates\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Clare Glover\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Young! You have 7 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022strawberry\u0022\r\n },\r\n {\r\n \u0022_id\u0022: \u00225efb084b56e7f6c8230ff1ba\u0022,\r\n \u0022index\u0022: 3,\r\n \u0022guid\u0022: \u0022ffa81d47-6c55-4296-92b4-92bc1a4e5164\u0022,\r\n \u0022isActive\u0022: false,\r\n \u0022balance\u0022: \u0022$2,647.06\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 32,\r\n \u0022eyeColor\u0022: \u0022green\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Stephanie\u0022,\r\n \u0022last\u0022: \u0022Garcia\u0022\r\n },\r\n \u0022company\u0022: \u0022CAXT\u0022,\r\n \u0022email\u0022: \u0022stephanie.garcia@caxt.co.uk\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (937) 532-3990\u0022,\r\n \u0022address\u0022: \u0022590 Wolf Place, Rose, Michigan, 3970\u0022,\r\n \u0022about\u0022: \u0022Deserunt culpa eiusmod officia voluptate exercitation pariatur sunt cupidatat deserunt ea id ut. Reprehenderit eu eiusmod incididunt duis veniam duis. Eiusmod quis culpa velit labore ipsum occaecat sunt in dolor aliquip culpa veniam labore culpa. Anim anim culpa nisi laboris ea duis qui excepteur magna laboris aliqua ut exercitation ex. Sunt consectetur ea officia commodo eiusmod exercitation fugiat mollit. Occaecat anim do mollit aliqua aliquip est aliquip ex amet consequat. Voluptate aute ipsum qui nulla magna.\u0022,\r\n \u0022registered\u0022: \u0022Wednesday, February 26, 2014 1:04 AM\u0022,\r\n \u0022latitude\u0022: \u002239.14353\u0022,\r\n \u0022longitude\u0022: \u0022-56.353484\u0022,\r\n \u0022tags\u0022: [\r\n \u0022ullamco\u0022,\r\n \u0022laborum\u0022,\r\n \u0022sunt\u0022,\r\n \u0022voluptate\u0022,\r\n \u0022do\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Roxie Eaton\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Lane Macdonald\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Howell Page\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Stephanie! You have 7 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022strawberry\u0022\r\n },\r\n {\r\n \u0022_id\u0022: \u00225efb084bb62bfb450df19330\u0022,\r\n \u0022index\u0022: 4,\r\n \u0022guid\u0022: \u00226a535c6f-cf17-4fee-8345-95b92ada8fb9\u0022,\r\n \u0022isActive\u0022: true,\r\n \u0022balance\u0022: \u0022$3,793.24\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 25,\r\n \u0022eyeColor\u0022: \u0022green\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Stephens\u0022,\r\n \u0022last\u0022: \u0022Parks\u0022\r\n },\r\n \u0022company\u0022: \u0022FLEXIGEN\u0022,\r\n \u0022email\u0022: \u0022stephens.parks@flexigen.info\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (812) 484-3157\u0022,\r\n \u0022address\u0022: \u0022835 Nevins Street, Castleton, Puerto Rico, 521\u0022,\r\n \u0022about\u0022: \u0022Duis laboris reprehenderit excepteur duis. Esse pariatur pariatur consectetur veniam nulla ea est elit dolore exercitation sit officia. Aliqua et do mollit nostrud nisi amet dolor id. Dolore nisi et qui amet magna laborum. Incididunt est aliqua eu tempor enim.\u0022,\r\n \u0022registered\u0022: \u0022Thursday, June 6, 2019 3:01 AM\u0022,\r\n \u0022latitude\u0022: \u002219.582355\u0022,\r\n \u0022longitude\u0022: \u0022171.918936\u0022,\r\n \u0022tags\u0022: [\r\n \u0022eiusmod\u0022,\r\n \u0022dolore\u0022,\r\n \u0022ex\u0022,\r\n \u0022voluptate\u0022,\r\n \u0022commodo\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Larson Sanford\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Finch Cotton\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Elisa Townsend\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Stephens! You have 7 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022apple\u0022\r\n },\r\n {\r\n \u0022_id\u0022: \u00225efb084b7173dce996b75928\u0022,\r\n \u0022index\u0022: 5,\r\n \u0022guid\u0022: \u0022149171e2-b390-4830-a077-ad260bb17be8\u0022,\r\n \u0022isActive\u0022: false,\r\n \u0022balance\u0022: \u0022$3,222.03\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 24,\r\n \u0022eyeColor\u0022: \u0022blue\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Klein\u0022,\r\n \u0022last\u0022: \u0022Harper\u0022\r\n },\r\n \u0022company\u0022: \u0022ISOSURE\u0022,\r\n \u0022email\u0022: \u0022klein.harper@isosure.biz\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (823) 590-3022\u0022,\r\n \u0022address\u0022: \u0022151 Folsom Place, Dupuyer, Maine, 5379\u0022,\r\n \u0022about\u0022: \u0022Occaecat esse sint fugiat voluptate ut. Voluptate nostrud nisi duis reprehenderit aliqua labore. Dolore duis aliquip magna ea ea proident commodo.\u0022,\r\n \u0022registered\u0022: \u0022Thursday, May 7, 2020 11:10 PM\u0022,\r\n \u0022latitude\u0022: \u0022-63.261246\u0022,\r\n \u0022longitude\u0022: \u0022-46.122835\u0022,\r\n \u0022tags\u0022: [\r\n \u0022incididunt\u0022,\r\n \u0022fugiat\u0022,\r\n \u0022fugiat\u0022,\r\n \u0022quis\u0022,\r\n \u0022aute\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Ellison Morrow\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Witt Huber\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Herminia Larson\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Klein! You have 10 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022apple\u0022\r\n },\r\n {\r\n \u0022_id\u0022: \u00225efb084b54251a4d2a166955\u0022,\r\n \u0022index\u0022: 6,\r\n \u0022guid\u0022: \u0022a4805e7b-2c9a-41f1-b21c-503ff788f5b0\u0022,\r\n \u0022isActive\u0022: false,\r\n \u0022balance\u0022: \u0022$2,123.75\u0022,\r\n \u0022picture\u0022: \u0022http://placehold.it/32x32\u0022,\r\n \u0022age\u0022: 30,\r\n \u0022eyeColor\u0022: \u0022green\u0022,\r\n \u0022name\u0022: {\r\n \u0022first\u0022: \u0022Leola\u0022,\r\n \u0022last\u0022: \u0022Woods\u0022\r\n },\r\n \u0022company\u0022: \u0022COFINE\u0022,\r\n \u0022email\u0022: \u0022leola.woods@cofine.ca\u0022,\r\n \u0022phone\u0022: \u0022\u002B1 (945) 516-2703\u0022,\r\n \u0022address\u0022: \u0022198 Sullivan Place, Sedley, Arkansas, 8718\u0022,\r\n \u0022about\u0022: \u0022Voluptate amet ipsum voluptate consectetur labore in tempor officia consectetur incididunt magna voluptate exercitation. Reprehenderit ad duis dolore commodo. Anim nulla Lorem enim voluptate esse officia. Reprehenderit sint eiusmod exercitation consectetur. Irure eiusmod aliquip mollit incididunt enim aute labore amet labore.\u0022,\r\n \u0022registered\u0022: \u0022Thursday, January 8, 2015 12:58 PM\u0022,\r\n \u0022latitude\u0022: \u002249.680939\u0022,\r\n \u0022longitude\u0022: \u0022-20.187306\u0022,\r\n \u0022tags\u0022: [\r\n \u0022incididunt\u0022,\r\n \u0022labore\u0022,\r\n \u0022duis\u0022,\r\n \u0022minim\u0022,\r\n \u0022non\u0022\r\n ],\r\n \u0022range\u0022: [\r\n 0,\r\n 1,\r\n 2,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9\r\n ],\r\n \u0022friends\u0022: [\r\n {\r\n \u0022id\u0022: 0,\r\n \u0022name\u0022: \u0022Terri Cantu\u0022\r\n },\r\n {\r\n \u0022id\u0022: 1,\r\n \u0022name\u0022: \u0022Dee Shepard\u0022\r\n },\r\n {\r\n \u0022id\u0022: 2,\r\n \u0022name\u0022: \u0022Jennifer Duffy\u0022\r\n }\r\n ],\r\n \u0022greeting\u0022: \u0022Hello, Leola! You have 5 unread messages.\u0022,\r\n \u0022favoriteFruit\u0022: \u0022apple\u0022\r\n }\r\n];","TestCases":[{"Name":"lodash.cloneDeep","Code":"_.cloneDeep(obj);","IsDeferred":false},{"Name":"cleanJson [modified to clone] (Recursive)","Code":"function cleanJson(obj) {\r\n // LOOP THROUGH ARRAYS\r\n let cleaned;\r\n if (obj instanceof Array) {\r\n cleaned = [];\r\n for (const elem of obj) {\r\n cleaned.push(cleanJson(elem));\r\n }\r\n return cleaned;\r\n\r\n // CLEAN AN OBJECT\r\n } else if (obj \u0026\u0026 typeof obj === \u0022object\u0022) {\r\n cleaned = {};\r\n for (const key in obj) {\r\n // If key starts with \u0022$\u0022 it is a private variable\r\n // If the key starts with _ we are expecting it to be\r\n // _id, __v or __t, all of which we don\u0027t allow in the clean\r\n // JSON as it is not something we want affecting Mongo\r\n // switch (key.charAt(0)) {\r\n // case \u0022$\u0022:\r\n // case \u0022_\u0022:\r\n // continue;\r\n // }\r\n\r\n // If the key is not one of those on our persistance\r\n // blacklist, we clean the sub-JSON\r\n cleaned[key] = cleanJson(obj[key]);\r\n }\r\n return cleaned;\r\n } else {\r\n return obj;\r\n }\r\n}\r\n\r\ncleanJson(obj);","IsDeferred":false},{"Name":"cloneJson (Loop)","Code":"function cloneJsonLoop(value) {\r\n if (!Array.isArray(value) \u0026\u0026 typeof value !== \u0022object\u0022) return value;\r\n\r\n let copyObj;\r\n const vs = [];\r\n if (Array.isArray(value)) {\r\n copyObj = [...value];\r\n } else if (typeof value === \u0022object\u0022) {\r\n copyObj = { ...value };\r\n }\r\n vs.push(copyObj);\r\n\r\n while (vs.length != 0) {\r\n const obj = vs.pop();\r\n if (obj instanceof Array) {\r\n for (let i = 0; i \u003C obj.length; i\u002B\u002B) {\r\n const value = obj[i];\r\n if (value instanceof Array) {\r\n obj[i] = value.slice();\r\n vs.push(obj[i]);\r\n } else if (typeof value === \u0022object\u0022) {\r\n obj[i] = Object.assign({}, value);\r\n vs.push(obj[i]);\r\n }\r\n }\r\n } /** typeof obj === object */ else {\r\n for (const key of Object.keys(obj)) {\r\n const value = obj[key];\r\n if (value instanceof Array) {\r\n obj[key] = value.slice();\r\n vs.push(obj[key]);\r\n } else if (typeof value === \u0022object\u0022) {\r\n obj[key] = Object.assign({}, value);\r\n vs.push(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n return copyObj;\r\n}\r\n\r\ncloneJsonLoop(obj);","IsDeferred":false},{"Name":"cloneJson (Loop - for in)","Code":"function cloneJsonLoop(value) {\r\n if (!Array.isArray(value) \u0026\u0026 typeof value !== \u0022object\u0022) return value;\r\n\r\n let copyObj;\r\n const vs = [];\r\n if (Array.isArray(value)) {\r\n copyObj = [...value];\r\n } else if (typeof value === \u0022object\u0022) {\r\n copyObj = { ...value };\r\n }\r\n vs.push(copyObj);\r\n\r\n while (vs.length != 0) {\r\n const obj = vs.pop();\r\n if (obj instanceof Array) {\r\n for (let i = 0; i \u003C obj.length; i\u002B\u002B) {\r\n const value = obj[i];\r\n if (value instanceof Array) {\r\n obj[i] = value.slice();\r\n vs.push(obj[i]);\r\n } else if (typeof value === \u0022object\u0022) {\r\n obj[i] = Object.assign({}, value);\r\n vs.push(obj[i]);\r\n }\r\n }\r\n } /** typeof obj === object */ else {\r\n for (const key in obj) {\r\n const value = obj[key];\r\n if (value instanceof Array) {\r\n obj[key] = value.slice();\r\n vs.push(obj[key]);\r\n } else if (typeof value === \u0022object\u0022) {\r\n obj[key] = Object.assign({}, value);\r\n vs.push(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n return copyObj;\r\n}\r\n\r\ncloneJsonLoop(obj);","IsDeferred":false},{"Name":"deepClone (if)","Code":"function deepClone(obj) {\r\n let out;\r\n\r\n if (Array.isArray(obj)) {\r\n out = [];\r\n for (let index = 0; index \u003C obj.length; \u002B\u002Bindex) {\r\n const subArray = obj[index];\r\n out.push(typeof subArray === \u0022object\u0022 ? deepClone(subArray) : subArray);\r\n }\r\n } else {\r\n out = {};\r\n for (const key in obj) {\r\n const subObject = obj[key];\r\n if (key[0] == \u0022$\u0022 || key[0] == \u0022_\u0022) continue;\r\n out[key] = typeof subObject === \u0022object\u0022 ? deepClone(subObject) : subObject;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\ndeepClone(obj);","IsDeferred":false},{"Name":"deepClone (switch, Object.keys)","Code":"function deepClone(obj) {\r\n let out;\r\n\r\n if (Array.isArray(obj)) {\r\n out = [];\r\n for (let index = 0; index \u003C obj.length; \u002B\u002Bindex) {\r\n const subArray = obj[index];\r\n out.push(typeof subArray === \u0022object\u0022 ? deepClone(subArray) : subArray);\r\n }\r\n } else {\r\n out = {};\r\n for (const key of Object.keys(obj)) {\r\n const subObject = obj[key];\r\n switch (key.charAt(0)) {\r\n case \u0022$\u0022:\r\n case \u0022_\u0022:\r\n continue;\r\n }\r\n out[key] = typeof subObject === \u0022object\u0022 ? deepClone(subObject) : subObject;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\ndeepClone(obj);","IsDeferred":false},{"Name":"deepClone (switch, for in)","Code":"function deepClone(obj) {\r\n let out;\r\n\r\n if (Array.isArray(obj)) {\r\n out = [];\r\n for (let index = 0; index \u003C obj.length; \u002B\u002Bindex) {\r\n const subArray = obj[index];\r\n out.push(typeof subArray === \u0022object\u0022 ? deepClone(subArray) : subArray);\r\n }\r\n } else {\r\n out = {};\r\n for (const key in obj) {\r\n const subObject = obj[key];\r\n switch (key.charAt(0)) {\r\n case \u0022$\u0022:\r\n case \u0022_\u0022:\r\n continue;\r\n }\r\n out[key] = typeof subObject === \u0022object\u0022 ? deepClone(subObject) : subObject;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\ndeepClone(obj);","IsDeferred":false}]}