Вы можете изменить свой код, как показано ниже:
var th_table = $('#table-id');
var tmpMonth;
$(data).each(function (index, th) {
var html = '';
if (tmpMonth !== th.MONTHNAME) {
html = '<tr>'
+ '<td rowspan="2" class="text-left">' + th.MONTHNAME + '</td>'
+ '<td class="text-left">' + th.CATEGORY + '</td>'
+ '<td class="text-left">' + th.NOOFDAYS + '</td>'
+ '</tr>';
tmpMonth = th.MONTHNAME;
} else {
html = '<tr>'
+ '<td class="text-left">' + th.CATEGORY + '</td>'
+ '<td class="text-left">' + th.NOOFDAYS + '</td>'
+ '</tr>';
}
th_table.append(html);
});
Обратите внимание, что данные ДОЛЖНЫ быть отсортированы по MONTHNAME .
или группеваши данные по MONTHNAME и цикл сгруппированных результатов.
var groupedResult = _.groupBy(data, function(d) { return d.MONTHNAME; });
_.forEach(groupedResult, funcation(values, key) {
// key is your MONTHNAME
// values is an array
html = '<tr>'
+ '<td rowspan="' + values.length + '" class="text-left">' + values[0].MONTHNAME + '</td>'
+ '<td class="text-left">' + values[0].CATEGORY + '</td>'
+ '<td class="text-left">' + values[0].NOOFDAYS + '</td>'
+ '</tr>';
th_table.append(html);
for(var i = 1; i < values.length; i++ ){
html = '<tr>'
+ '<td class="text-left">' + values[i].CATEGORY + '</td>'
+ '<td class="text-left">' + values[i].NOOFDAYS + '</td>'
+ '</tr>';
th_table.append(html);
}
});