Ich habe mit der Erstellung einer Arbeitszeittabelle beauftragt, die die Stunden von jedem Client pro Tag gearbeitet wird. Die Tabelle sollte unter so etwas wie das Snippet aussehen:Javascript Objekt Array Gruppierung und Summierung
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 = {
...
},
...
}
Also wenn jemand könnte vorschlagen, wie etwa die Gruppierung den Zeiterfassungs Artikel Array zu gehen, so dass das Ergebnis oben wie die Schnipsel aussehen wird, so kann ich einfach aus dem gruppierten Array zu loopen, um die Tabelle zu füllen, wäre es sehr hilfreich. Danke.
[Array # verringern] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) – Xotic750