Frage Array mit Arrays in HTML Tabelle darstellen

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sempervivum

Senior HTML'ler
18 Oktober 2016
2.140
427
83
68
Solch eine Aufgabe treffe ich nicht zum ersten Mal an und ich habe dafür dann folgenden Algorithmus verwendet:
Als Ergebnis verwenden wir ein Objekt mit der Uhrzeit als Schlüssel, also dass das Ergebnis so aussieht:
Code:
{
    '08:00': ['2020-11-08', '2020-11-09'],
    '08:30': ['2020-11-08', '2020-11-09', '2020-11-10'],
    '09:00': ['2020-11-08', '2020-11-09', '2020-11-10'],
    '09:30': ['2020-11-09', '2020-11-10']
}
D. h. annähernd die Struktur, wie sie in der Ausgabe erscheinen soll mit Uhrzeit in der Zeile.
Zunächst iterieren wir über die Intervalle mit einer Schrittweite von 30 min, woraus sich jeweils eine Uhrzeit ergibt.
Beim Eintragen in das Ergebnisobjekt prüfen wir, ob die Uhrzeit schon vorhanden ist: Wenn ja, fügen wir das Datum hinzu, wenn nicht, legen wir einen neuen Eintrag mit der Uhrzeit an. Damit haben wir dann ein Objekt mit Uhrzeit als Schlüssel und einem Array der Daten als Wert.
Jetzt fehlen noch zwei Dinge: In den Arrays ist nicht jedes Datum vertreten, daher legen wir im selben Durchlauf ein zusätzliches Array mit den Datum-Werten an.
Dann haben wir noch das Problem, dass in einem Objekt die Reihenfolge beim Iterieren nicht fest definiert ist.
Daher brauchen wir jetzt doch einen weiteren Durchlauf, indem wir das Objekt, so wie hier beschrieben, in ein
sortiertes Array umwandeln.
Dann können wir mit zwei verschachtelten Schleifen über das Ergebnis-Array iterieren und die Ausgabe anlegen.
Etwas lang geraten die Beschreibung, der Code wird wahrscheinlich kompakter ausfallen.
 
  • Like
Reaktionen: themrdomi