{"ScriptPreparationCode":null,"TestCases":[{"Name":"Using the spread operator","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {...firstObject};","IsDeferred":false},{"Name":"Well-known Keys, Create new object while copying, [] accessor","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = { \r\n prop0: firstObject[\u0027prop0\u0027],\r\n prop1: firstObject[\u0027prop1\u0027],\r\n prop2: firstObject[\u0027prop2\u0027],\r\n prop3: firstObject[\u0027prop3\u0027],\r\n prop4: firstObject[\u0027prop4\u0027],\r\n prop5: firstObject[\u0027prop5\u0027]\r\n};","IsDeferred":false},{"Name":"Well-known Keys, Manually copying properties, [] accessor","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = {};\r\nfinalObject[\u0027prop0\u0027] = firstObject[\u0027prop0\u0027];\r\nfinalObject[\u0027prop1\u0027] = firstObject[\u0027prop1\u0027];\r\nfinalObject[\u0027prop2\u0027] = firstObject[\u0027prop2\u0027];\r\nfinalObject[\u0027prop3\u0027] = firstObject[\u0027prop3\u0027];\r\nfinalObject[\u0027prop4\u0027] = firstObject[\u0027prop4\u0027];\r\nfinalObject[\u0027prop5\u0027] = firstObject[\u0027prop5\u0027];","IsDeferred":false},{"Name":"Object.entries() \u002B map","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nObject.entries(firstObject).map((k) =\u003E {finalObject[k[0]]=k[1];});","IsDeferred":false},{"Name":"Object.keys() \u002B map","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nObject.keys(firstObject).map((k) =\u003E {finalObject[k]=firstObject[k];});","IsDeferred":false},{"Name":"Well-Known Numbered Keynames w/Known Length","Code":"const length = 5;\r\n\r\nconst firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nfor (i=0;i\u003Clength;i\u002B\u002B) {\r\n finalObject[\u0027prop\u0027\u002Bi] = firstObject[\u0027prop\u0027\u002Bi];\r\n}","IsDeferred":false},{"Name":"Well-Known Keys, for..in","Code":"const keys = [\u0027prop0\u0027,\u0027prop1\u0027,\u0027prop2\u0027,\u0027prop3\u0027,\u0027prop4\u0027,\u0027prop5\u0027];\r\n\r\nconst firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nfor (let i in keys) {\r\n finalObject[keys[i]] = firstObject[keys[i]];\r\n}","IsDeferred":false},{"Name":"Well-Known Keys, for..of","Code":"const keys = [\u0027prop0\u0027,\u0027prop1\u0027,\u0027prop2\u0027,\u0027prop3\u0027,\u0027prop4\u0027,\u0027prop5\u0027];\r\n\r\nconst firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nfor (let key of keys) {\r\n finalObject[key] = firstObject[key];\r\n}","IsDeferred":false},{"Name":"Well-Known Keys, forEach","Code":"const keys = [\u0027prop0\u0027,\u0027prop1\u0027,\u0027prop2\u0027,\u0027prop3\u0027,\u0027prop4\u0027,\u0027prop5\u0027];\r\n\r\nconst firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nkeys.forEach((key)=\u003E{finalObject[key]=firstObject[key]});","IsDeferred":false},{"Name":"Object Assign pre-created","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = {};\r\n\r\nObject.assign(finalObject, firstObject);","IsDeferred":false},{"Name":"Well-known Keys, extract and create new object while copying, . accessor","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet prop0 = firstObject.prop0;\r\nlet prop1 = firstObject.prop1;\r\nlet prop2 = firstObject.prop2;\r\nlet prop3 = firstObject.prop3;\r\nlet prop4 = firstObject.prop4;\r\nlet prop5 = firstObject.prop5;\r\n\r\nconst finalObject = { \r\n prop0, prop1, prop2, prop3, prop4, prop5\r\n};","IsDeferred":false},{"Name":"structuredClone","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = structuredClone(firstObject);","IsDeferred":false},{"Name":"Iterable","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2,\r\n [Symbol.iterator]: function*() {\r\n let keys = Object.keys(this);\r\n for (let i=0;i\u003Ckeys.length;i\u002B\u002B) yield [ keys[i], this[keys[i]] ];\r\n }\r\n};\r\n\r\nlet finalObject = {};\r\n\r\nfor (let [key,value] of firstObject) {\r\n finalObject[key] = value;\r\n}","IsDeferred":false},{"Name":"Iterate Copy - Object.entries() \u002B for..of","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = {};\r\n\r\nfor (let [k,v] of Object.entries(firstObject)) {\r\n finalObject[k]=v;\r\n}","IsDeferred":false},{"Name":"Iterate Copy - Object.keys().forEach","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = {};\r\n\r\nObject.keys(firstObject).forEach((key) =\u003E {finalObject[key] = firstObject[key];});","IsDeferred":false},{"Name":"Iterate Copy - for..in","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = {};\r\n\r\nfor (const property in firstObject) {\r\n finalObject[property] = firstObject[property];\r\n}","IsDeferred":false},{"Name":"Iterate Copy - Object.entries()","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = {};\r\n\r\nfor (const [key, value] of Object.entries(firstObject)) {\r\n finalObject[key]=value;\r\n}","IsDeferred":false},{"Name":"Statically create new same object from scratch","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};","IsDeferred":false},{"Name":"Well-known Keys, Create new object while copying","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = { \r\n prop0: firstObject.prop0,\r\n prop1: firstObject.prop1,\r\n prop2: firstObject.prop2,\r\n prop3: firstObject.prop3,\r\n prop4: firstObject.prop4,\r\n prop5: firstObject.prop5\r\n};","IsDeferred":false},{"Name":"Well-known Keys, Manually copying properties","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = {};\r\nfinalObject.prop0 = firstObject.prop0;\r\nfinalObject.prop1 = firstObject.prop1;\r\nfinalObject.prop2 = firstObject.prop2;\r\nfinalObject.prop3 = firstObject.prop3;\r\nfinalObject.prop4 = firstObject.prop4;\r\nfinalObject.prop5 = firstObject.prop5;","IsDeferred":false},{"Name":"Using Object.assign","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nconst finalObject = Object.assign({}, firstObject);","IsDeferred":false},{"Name":"JSON Copy","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet finalObject = JSON.parse(JSON.stringify(firstObject));","IsDeferred":false},{"Name":"Well-known Keys, extract and create new object while copying, [] accessor","Code":"const firstObject = { \r\n prop0: \u0027Hello world\u0027,\r\n prop1: 1,\r\n prop2: 2,\r\n prop3: \u00223\u0022,\r\n prop4: false,\r\n prop5: 0.2\r\n};\r\n\r\nlet prop0 = firstObject[\u0027prop0\u0027];\r\nlet prop1 = firstObject[\u0027prop1\u0027];\r\nlet prop2 = firstObject[\u0027prop2\u0027];\r\nlet prop3 = firstObject[\u0027prop3\u0027];\r\nlet prop4 = firstObject[\u0027prop4\u0027];\r\nlet prop5 = firstObject[\u0027prop5\u0027];\r\n\r\nconst finalObject = { \r\n prop0, prop1, prop2, prop3, prop4, prop5\r\n};","IsDeferred":false}]}