{"ScriptPreparationCode":"var source = {\r\n \u0022id\u0022: \u002231830115-0ab0-4167-b2b8-c4d84aa2b8e0\u0022,\r\n \u0022name\u0022: \u0022Variable usage playground\u0022,\r\n \u0022externalId\u0022: \u0022pXlIb5TeR5FuUjLirE8CWo\u0022,\r\n \u0022pages\u0022: [\r\n {\r\n \u0022id\u0022: \u0022f5328546-b7bb-484b-952f-f4fa59bba425\u0022,\r\n \u0022externalId\u0022: \u00220:1\u0022,\r\n \u0022frames\u0022: [\r\n {\r\n \u0022id\u0022: \u002214563074-6003-4094-ba45-603e1e1f888e\u0022,\r\n \u0022name\u0022: \u0022Collections\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u00227bd3596f-f42c-4ab7-9270-c16e0ecd2e34\u0022,\r\n \u0022name\u0022: \u0022Collections\u0022,\r\n \u0022externalId\u0022: \u00221:22\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u002293c6d160-5838-4ec6-a420-db63486e8dad\u0022,\r\n \u0022name\u0022: \u0022a1 / group2\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u00227bbd6104-d6f2-47ca-ac4f-0159acd4e4f7\u0022,\r\n \u0022name\u0022: \u00222.1.1 (Color, fill)\u0022,\r\n \u0022externalId\u0022: \u00221:36\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u0022c823da23-e180-45c0-a5e6-c61f2d1a4685\u0022,\r\n \u0022name\u0022: \u0022a1 / 2.1.2 (Number, border-radius)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u00229c26d86a-d67f-4675-99ee-da75394ef7a6\u0022,\r\n \u0022name\u0022: \u00222.1.2 (Number, border-radius)\u0022,\r\n \u0022externalId\u0022: \u00221:37\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u0022713c578d-6f8a-460b-92ee-5db8f181d4fe\u0022,\r\n \u0022name\u0022: \u0022UntitledGroup 10.20.2023, 20:57:15/2.1.3 (String, text layer)333\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u00227fa5f591-135d-4c3c-bbbb-d4a652959212\u0022,\r\n \u0022name\u0022: \u00222.1.3 (String, text layer)\u0022,\r\n \u0022externalId\u0022: \u00221:38\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u00228f40f29f-208a-4b11-97a2-aaecf45b37f1\u0022,\r\n \u0022name\u0022: \u0022UntitledGroup 10.20.2023, 20:57:15/2.1.4 (Boolean, prototype)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u0022885e6b1b-8809-4307-8a2c-0d5a7a81584a\u0022,\r\n \u0022name\u0022: \u00222.1.4 (Boolean, prototype)\u0022,\r\n \u0022externalId\u0022: \u00221:40\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u002292fe00a2-880b-4f99-b56d-d2ec31c068d6\u0022,\r\n \u0022name\u0022: \u00222.2.1 (Color, fill)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u0022c9751c0d-3b7f-49fb-b79a-49ffc133da5a\u0022,\r\n \u0022name\u0022: \u00222.2.1 (Color, fill)\u0022,\r\n \u0022externalId\u0022: \u00221:43\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u0022aa474716-ff4a-4d49-a8ea-72eb34ae1cf8\u0022,\r\n \u0022name\u0022: \u0022group111/2.2.2 (Number, border-radius)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u0022fee127fc-e6d8-42ed-8075-df7af9ac0a59\u0022,\r\n \u0022name\u0022: \u00222.2.2 (Number, border-radius)\u0022,\r\n \u0022externalId\u0022: \u00221:44\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u00228ebabc48-5ffd-4e54-9869-56fc57f688b0\u0022,\r\n \u0022name\u0022: \u0022group2/2.2.4 (Boolean, prototype)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u0022dc29c45f-9a3d-491a-8e90-a06810df2a1e\u0022,\r\n \u0022name\u0022: \u00222.2.4 (Boolean, prototype)\u0022,\r\n \u0022externalId\u0022: \u00221:47\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u0022e1cd2bfc-9cce-4544-a14e-63037cb568ed\u0022,\r\n \u0022name\u0022: \u00223.1 (Color, fill \u002B Number, border-radius)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u00226b7731d1-23fb-4b2a-91ea-c3db97ff6c0c\u0022,\r\n \u0022name\u0022: \u00223.1 (Color, fill \u002B Number, border-radius)\u0022,\r\n \u0022externalId\u0022: \u00222:69\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u00226e4c8c16-8567-408d-a121-f34d019f6cf7\u0022,\r\n \u0022name\u0022: \u00223.2 (Color, text fill \u002B String, text layer)\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u00228df77f07-9ded-416c-a9dd-4bb068de02cf\u0022,\r\n \u0022name\u0022: \u00223.2 (Color, text fill \u002B String, text layer)\u0022,\r\n \u0022externalId\u0022: \u00222:70\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n },\r\n {\r\n \u0022id\u0022: \u00222aefefcc-d7d5-4caf-a19c-64d5af9b0c9d\u0022,\r\n \u0022name\u0022: \u00223.3 (Number, width \u002B Number, height, \u002B Number, border-radius)/group1\u0022,\r\n \u0022versions\u0022: [\r\n {\r\n \u0022id\u0022: \u0022e1b17f47-08d1-4025-b1e1-cd60069fbade\u0022,\r\n \u0022name\u0022: \u00223.3 (Number, width \u002B Number, height, \u002B Number, border-radius)\u0022,\r\n \u0022externalId\u0022: \u00222:72\u0022,\r\n \u0022version\u0022: 1,\r\n \u0022createdAt\u0022: 1698402406719,\r\n \u0022updatedAt\u0022: 1698402406719\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nfunction JSONCopy (data) {\r\n\tconst copy = JSON.parse(JSON.stringify(data));\r\n \treturn copy;\r\n}\r\n\r\nfunction lodashCopy (data) {\r\n\tconst copy = _.cloneDeep(data);\r\n\treturn copy;\r\n}\r\n\r\nfunction customDeepCopy(obj){\r\n\tif(Array.isArray(obj)){\r\n\t\tvar arr = [];\r\n\t\tfor (var i = 0; i \u003C obj.length; i\u002B\u002B) {\r\n\t\t\tarr[i] = customDeepCopy(obj[i]);\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\r\n\tif(typeof(obj) == \u0022object\u0022){\r\n\t\tvar cloned = {};\r\n\t\tfor(key in obj){\r\n\t\t\tcloned[key] = customDeepCopy(obj[key])\r\n\t\t}\r\n\t\treturn cloned;\t\r\n\t}\r\n\treturn obj;\r\n}\r\n\r\nfunction spreadCopy (data) {\r\n\tconst copy = { ...data };\r\n return copy;\r\n}\r\n\r\nfunction assignCopy (data) {\r\n\tconst copy = Object.assign({}, data);\r\n \treturn copy;\r\n}","TestCases":[{"Name":"JSONCopy","Code":"JSONCopy(source);","IsDeferred":false},{"Name":"lodashCopy","Code":"lodashCopy(source);","IsDeferred":false},{"Name":"customDeepCopy","Code":"customDeepCopy(source);","IsDeferred":false},{"Name":"spreadCopy","Code":"spreadCopy(source);","IsDeferred":false},{"Name":"assignCopy","Code":"assignCopy(source);","IsDeferred":false}]}