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