I have been tasked with creating a time sheet table that will display the hours worked on by each client per day. The table should look something like the snippet below:
table, td, th {
border: 1px solid black;
}
<div>
<table id="testTable" class="table">
<tr>
<th>Client name</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
<th>Sunday</th>
</tr>
<tr>
<td>client1</td>
<td>0</td>
<td>5</td>
<td>3</td>
<td>2</td>
<td>3</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>client2</td>
<td>4</td>
<td>1</td>
<td>4</td>
<td>2</td>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
</table>
</div>
timesheetItems = [
timesheetItem = {
clientName: client1,
hoursWorked: 2,
day: Monday
},
timesheetItem = {
clientName: client1,
hoursWorked: 3,
day: Monday
},
timesheetItem = {
clientName: client1,
hoursWorked: 4,
day: Wednesday
},
timesheetItem = {
clientName: client2,
hoursWorked: 4,
day: Monday
}
];
groupedArray = {
Client1 = {
Mon: 5,
tues: 3,
...
sun: 0
},
client2 = {
mon:2,
...
},
client3 = {
...
},
...
}
So if anyone could suggest how to go about grouping the timesheet items array so that the outcome will look like the snippet above, so i can easily loop from the grouped array to populate the table, it would be very helpful. Thanks.