var list = [
{ date: "2017-01-01",
type: "type1",
amount: 100
},
{ date: "2017-01-01",
type: "type2",
amount: 150
},
{ date: "2017-01-02",
type: "type1",
amount: 200
}]
var dateArrKeyHolder = [];
var dateArr = [];
list.forEach(function(item){
dateArrKeyHolder[item.date] = dateArrKeyHolder[item.date]||{};
var obj = dateArrKeyHolder[item.date];
if(Object.keys(obj).length == 0)
dateArr.push(obj);
obj.date = item.date;
obj.activities = obj.activities || [];
obj.activities.push({type:item.type, amount: item.amount });
});
console.log(JSON.stringify(dateArr));