JSFiddle - React, Tailwind, and code Playground
by Alexey
JavaScript
let arr = [{'red':100},{'blue':300},{'red':200},{'green':700}];
let arr1 = arr.reduce((res, el) => {
let key = Object.keys(el)[0];
let item = res.find(el1 => Object.keys(el1)[0] == key);
if (!item) {
item = { [key]: el[key] };
res.push(item);
} else {
if (!item[key].length)
item[key] = [item[key]];
item[key].push(el[key]);
}
return res;
}, []);
console.log(arr1);