const stringify = (obj) => { // use 2 spaces and pretty print it return JSON.stringify(obj, null, 2) } const token = "hijames" // starting array const config = { headers: { 'Authorization': `Bearer ${token}`, "Content-Type": "text/plain", "Accept": "application/json" } } // array to merge with the above const myInit = { method: 'POST', mode: 'cors', cache: 'default' }; const config1 = { ...config, myInit } console.log("...spread Operator\n", stringify(config1)) const config3 = { ...config, ...myInit } console.log("...spread Operator used on both objects\n", stringify(config3)) const config2 = Object.assign(config, myInit) console.log("Using Object.assign\n", stringify(config2) )
//output of the above // if you don't use the spread operator // on the second object it will include // the object variable name ...spread Operator { "headers": { "Authorization": "Bearer hijames", "Content-Type": "text/plain", "Accept": "application/json" }, "myInit": { "method": "POST", "mode": "cors", "cache": "default" } } // this works as expected ...spread Operator used on both objects { "headers": { "Authorization": "Bearer hijames", "Content-Type": "text/plain", "Accept": "application/json" }, "method": "POST", "mode": "cors", "cache": "default" } // another way Using Object.assign { "headers": { "Authorization": "Bearer hijames", "Content-Type": "text/plain", "Accept": "application/json" }, "method": "POST", "mode": "cors", "cache": "default" }
0 Comments