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);