The standard way to do that is to use an object as map (here b) :
var b = {}, arr = [];
for (var id in a) {
var oa = a[id], ob = b[oa.id];
if (!ob) arr.push(ob = b[oa.id] = {});
for (var k in oa) ob[k] = k==='id' ? oa.id : (ob[k]||0)+oa[k];
}
console.log(arr)