Можно поиграться с
rows и
cells и получить примерно такую функцию
function groupRows(table) {
var uniqueRows = {},
removedRows = [];
[].forEach.call(table.rows, function (row) {
var key = row.cells[0].textContent,
value = +row.cells[1].textContent.split(' ')[1],
sum;
if (key in uniqueRows) {
sum = uniqueRows[key].value + value;
uniqueRows[key].row.cells[1].textContent = 'Количество ' + sum;
uniqueRows[key].value = sum;
removedRows.push(row);
} else {
uniqueRows[key] = {
row: row,
value: value
};
}
});
[].forEach.call(removedRows, function (row) {
table.tBodies[0].removeChild(row);
});
}
Пример работы функции