{"ScriptPreparationCode":"var firstObject = {\r\n sampleData: \u0027Hello world\u0027\r\n}\r\nvar secondObject = {\r\n moreData: \u0027foo bar\u0027\r\n}\r\nvar merge = (def, opt) =\u003E {\r\n if (!opt) return def\r\n for (const key in def) {\r\n if (!Object.prototype.hasOwnProperty.call(opt, key) || opt[key] === undefined)\r\n opt[key] = def[key]\r\n else if (opt[key] === Object(opt[key]))\r\n opt[key] = merge(def[key], opt[key])\r\n }\r\n return opt\r\n}","TestCases":[{"Name":"Using the spread operator","Code":"const finalObject = {\r\n\t...firstObject,\r\n \t...secondObject\r\n}","IsDeferred":false},{"Name":"Using Object.assign","Code":"const finalObject = Object.assign(firstObject, secondObject)","IsDeferred":false},{"Name":"Using custom merge method (Create a clone object)","Code":"const finalObject = merge(firstObject, secondObject)","IsDeferred":false}]}