美好的一天, 我有以下数据的样本表
ID Date Loc Time From Time To
1 01-jan-2018 10 08:15 17:00
1 02-jan-2018 10 08:15 17:00
**1 03-jan-2018 10 08:15 09:00
1 03-jan-2018 20 09:15 11:30
1 03-jan-2018 30 11:45 14:00
1 03-jan-2018 10 14:15 17:00**
1 04-jan-2018 10 08:15 17:00
在此表中,我想将相同日期的记录分组,以便输出如下:
ID Date Loc Time From Time To
1 01-jan-2018 10 08:15 17:00
1 02-jan-2018 10 08:15 17:00
**1 03-jan-2018 10 08:15 17:00**
1 03-jan-2018 10 08:15 09:00
1 03-jan-2018 20 09:15 11:30
1 03-jan-2018 30 11:45 14:00
1 03-jan-2018 10 14:15 17:00
1 04-jan-2018 10 08:15 17:00
使用以下问题进行分组:
Grouping table rows based on cell value using jquery/javascript
但是为了实现组顶部的摘要行,我使用该方法获取组的第一行进行复制,将其修改为摘要,然后通过两种不同的方法将其添加到组的开头在以下代码中:
for (var id in rowGroups) {
var group = rowGroups[id];
// Loop through and add header rows to rowgroups
if (group.length > 1)
{
/* // Method # 1 using Array assignment
var rowmain = group.slice(0);
rowmain.cells[2].innerText = "";
rowmain.cells[3].innerText = group[0].cells[3].innerText;
rowmain.cells[4].innerText = group[group.length - 1].cells[4].innerText;
*/
/*
var rowmain = $(group)[0];
$($(rowmain)[0]).find('td')[2].innerText = ""; // Location
$($(rowmain)[0]).find('td')[3].innerText = group[0].cells[3].innerText;
$($(rowmain)[0]).find('td')[4].innerText = group[group.length - 1].cells[4].innerText;
*/
group.unshift(rowmain)
}
for (var j = 0; j < group.length; j++) {
var row = group[j];
if (group.length > 1 && j == 1) {
row.className = 'subrow';
}
if (group.length > 1 && j == 0) {
var firstCell = row.cells[0];
$("<span class='collapsed'>").appendTo(firstCell).click(plusClick);
}
table.tBodies[0].appendChild(row);
}
}
但似乎javascript数组被用作参考,因此在每种情况下,当我选择第一行组(数组元素)并修改副本时,它也会更改原始数据。请帮助如何实现这一目标。
感谢。