function merge(...objects) { let masterObj = {} // iterate over `objects` merging each // into `masterObj` to generate flattened // object for (let i = 0; i < objects.length; i++) { let obj = objects[i] for (let key in obj) masterObj[key] = obj[key] } return masterObj } let merged = merge(...objectsList) // output: // {count:5, delay:2000, early:false, message:'Hello'} console.log(merged)