var items = [
{id:1,name:'foo'},
{id:2,name:'bar'},
{id:1,name:'foo'}
];
var results = items.reduce(function(prev, item) {
// если мы уже встречали такое name, то увеличиваем счетчик
if (prev[item.name]) {
prev[item.name].count++;
} else {
// если такого name не встречали, создаем счетчик
prev[item.name] = {
name: item.name,
id: item.id,
count: 1,
};
}
return prev;
}, {});
console.log(items);