SO - 16730526

by Arun P Johny

JavaScript

var data = [{
    date: '2013-05-12',
    holiday: "One type of holiday",
    dayType: "Weekend"
}, {
    date: '2013-05-13',
    holiday: "Another type",
    dayType: "Weekend"
}, {
    date: '2013-05-14',
    holiday: "Another type",
    dayType: "Work"
}, {
    date: '2013-05-15',
    holiday: "",
    dayType: "Work"
}];
console.log(data);

var summary = [], summaryMap = {}, d, map, m;
for (var i = 0; i < data.length; i++) {
    var d = data[i];
    map = summaryMap[d.holiday];
    if(!map){
        map = {
            Work: 0,
            Weekend: 0
        };
        m = {};
        m[d.holiday] = map;
        summary.push(m);
        summaryMap[d.holiday] = map;
    }
    map[d.dayType] += 1;
}
console.log(summary);
console.log(JSON.stringify(summary));