JSFiddle - React, Tailwind, and code Playground

JavaScript

var h = [
{name: 'p1', color: 'c1'},
{name: 'p1', color: 'c2'},
{name: 'p1', color: 'c3'},
{name: 'p2', color: 'c1'},
{name: 'p2', color: 'c4'},
{name: 'p3', color: 'c5'}
];
var total = {};

h.forEach(function(e){
	total[e.name] = total[e.name] || {name: e.name, colors: []};
  total[e.name].colors.push(e.color);
});

alert(
  JSON.stringify(
    Object.keys(total).map(
      function(key){return total[key]}
    )));