{"ScriptPreparationCode":"var user = {\r\n id: 1,\r\n email: \u0027bob@somewhere.com\u0027,\r\n personalInfo: {\r\n name: \u0027Robert\u0027,\r\n address: {\r\n road: \u0027Quartier Djinageryber\u0027,\r\n city: \u0027Timbuktu\u0027,\r\n country: \u0027Mali\u0027\r\n }\r\n }\r\n}\r\n\r\nfunction shallowClone (source) {\r\n if (source === null || typeof source !== \u0027object\u0027) return source\r\n\r\n return ({}.toString.call(source) === \u0027[object Array]\u0027) ? [...source] : { ...source }\r\n}","TestCases":[{"Name":"Using the spread operator","Code":"var finalObject = { ...user };","IsDeferred":false},{"Name":"Using Object.assign","Code":"var finalObject = Object.assign({}, user);","IsDeferred":false},{"Name":"Using for .. of","Code":"var finalObject = shallowClone(user);","IsDeferred":false}]}