{"ScriptPreparationCode":null,"TestCases":[{"Name":"Using Reduce ES5","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nconst mergedObject = Object.keys(firstObject)\r\n .reduce(function(accumulator, key) {\r\n let toMerge = secondObject[key];\r\n \r\n if (!toMerge) {\r\n toMerge = firstObject[key];\r\n }\r\n \r\n accumulator[key] = toMerge;\r\n return accumulator;\r\n }, {});","IsDeferred":false},{"Name":"Using Reduce ES5 (test with \u0060in\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nconst mergedObject = Object.keys(firstObject)\r\n .reduce(function(accumulator, key) {\r\n accumulator[key] = firstObject[key];\r\n \r\n if (key in secondObject) {\r\n accumulator[key] = secondObject[key];\r\n }\r\n \r\n return accumulator;\r\n }, {});","IsDeferred":false},{"Name":"Using Reduce ES5 (test with \u0060hasOwnProperty\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nconst mergedObject = Object.keys(firstObject)\r\n .reduce(function(accumulator, key) {\r\n accumulator[key] = firstObject[key];\r\n \r\n if (secondObject.hasOwnProperty(key)) {\r\n accumulator[key] = secondObject[key];\r\n }\r\n \r\n return accumulator;\r\n }, {});\r\n","IsDeferred":false},{"Name":"Using Reduce ES6","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nconst mergedObject = Object.keys(firstObject)\r\n .reduce((a, key) =\u003E {\r\n let toMerge = secondObject[key];\r\n \r\n if (!toMerge) {\r\n toMerge = firstObject[key];\r\n }\r\n \r\n return { ...a, [key]: toMerge};\r\n }, {});\r\n","IsDeferred":false},{"Name":"Using Reduce ES6 (test with \u0060in\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nconst mergedObject = Object.keys(firstObject)\r\n .reduce((a, key) =\u003E {\r\n let toMerge = firstObject[key];\r\n \r\n if (key in secondObject) {\r\n toMerge = secondObject[key];\r\n }\r\n \r\n return { ...a, [key]: toMerge};\r\n }, {});","IsDeferred":false},{"Name":"Using Reduce ES6 (test with \u0060hasOwnProperty\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nconst mergedObject = Object.keys(firstObject)\r\n .reduce((a, key) =\u003E {\r\n let toMerge = firstObject[key];\r\n \r\n if (secondObject.hasOwnProperty(key)) {\r\n toMerge = secondObject[key];\r\n }\r\n \r\n return { ...a, [key]: toMerge};\r\n }, {});","IsDeferred":false},{"Name":"Using For...","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nlet mergedObject = firstObject;\r\nconst keys = Object.keys(mergedObject);\r\n\r\nfor (let index = 0; index \u003C keys.length; index\u002B\u002B) {\r\n\tconst key = keys[index];\r\n \r\n if (secondObject[key]) {\r\n mergedObject[key] = secondObject[key];\r\n } \r\n}","IsDeferred":false},{"Name":"Using For... (test with \u0060in\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nlet mergedObject = firstObject;\r\nconst keys = Object.keys(mergedObject);\r\n\r\nfor (let index = 0; index \u003C keys.length; index\u002B\u002B) {\r\n\tconst key = keys[index];\r\n \r\n if (key in secondObject) {\r\n mergedObject[key] = secondObject[key];\r\n } \r\n}","IsDeferred":false},{"Name":"Using For... (test with \u0060hasOwnProperty\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nlet mergedObject = firstObject;\r\nconst keys = Object.keys(mergedObject);\r\n\r\nfor (let index = 0; index \u003C keys.length; index\u002B\u002B) {\r\n\tconst key = keys[index];\r\n \r\n if (secondObject.hasOwnProperty(key)) {\r\n mergedObject[key] = secondObject[key];\r\n } \r\n}","IsDeferred":false},{"Name":"Using For... In","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nlet mergedObject = firstObject;\r\n\r\nfor (let key in mergedObject) {\r\n if (secondObject[key]) {\r\n mergedObject[key] = secondObject[key];\r\n }\r\n}","IsDeferred":false},{"Name":"Using For... In (test with \u0060in\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nlet mergedObject = firstObject;\r\n\r\nfor (let key in mergedObject) {\r\n if (key in secondObject) {\r\n mergedObject[key] = secondObject[key];\r\n }\r\n}","IsDeferred":false},{"Name":"Using For... In (test with \u0060hasOwnProperty\u0060)","Code":"const firstObject = {\r\n a: \u0027Hello,\u0027,\r\n b: \u0027World\u0027\r\n};\r\n\r\nconst secondObject = { b: \u0027World!\u0027, c: \u0027!\u0027 };\r\n\r\nlet mergedObject = firstObject;\r\n\r\nfor (let key in mergedObject) {\r\n if (secondObject.hasOwnProperty(key)) {\r\n mergedObject[key] = secondObject[key];\r\n }\r\n}","IsDeferred":false}]}