SO - 16730526
by Tomasz
HTML
<div id='result'></div>
CSS
table, table td, table th {
border: 1px black solid;
}
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"
}, {
date: '2013-05-16',
holiday: "Another type",
dayType: "Work"
}];
console.log(data);
var summary = {}, d, tmp, type;
for (var i = 0; i < data.length; i++) {
var d = data[i];
if (d.holiday.length > 0) {
type = d.dayType == 'Weekend' || d.dayType == 'Free' ? 'Weekend' : 'Work';
tmp = summary[d.holiday];
if (!tmp) {
tmp = {
Weekend: 0,
Work: 0
};
summary[d.holiday] = tmp;
}
summary[d.holiday][type] += 1;
}
}
var table = '<table><thead><tr><th>Type</th><th>Work days/Total (including work days)</th></tr></thead><tbody>';
$.each(summary, function (k, v) {
table += '<tr><td>' + k + '</td><td>' + v.Work + '/' + (v.Weekend + v.Work) + '</td></tr>';
});
table += '</tbody></table>';
$('div#result').html(table);