Found a more compact solution
const output = value.map((v, index) => {return {...v, ...list[index]}})
the ... modifier strips objects of their outer brackets so like so:
...
key:value == ...{key:value}