Ich habe ein Array. Das Array kann 1 bis 7 eindeutige Strings von Tagnamen enthalten. Die Tagnamen werden von Montag bis Sonntag in der Reihenfolge angezeigt. - zB:
["Di", "Do", "Sun"]
Ich möchte JavaScript verwenden, um dieses Array so zu sortieren, dass die Reihenfolge mit heute beginnt.
ie: Wenn heute Freitag ist, sollte das sortierte Array
sein["Sonne", "Di", "Do"]
Wenn heute Donnerstag ist, sollte das sortierte Array
sein["Do", "Sun", "Di"]
Kann jemand helfen?
Um den heutigen Wochentag zu erhalten, verwenden Sie new Date().getDay()
. Dies setzt Sunday = 0, Monday = 1, ..., Saturday = 6
voraus.
Um die Liste der Wochentage zu erstellen, zerschneiden Sie die Liste der Namen:
%Vor% (heute ist Freitag, also sorted_list
ist ['Fri','Sat','Sun','Mon','Tue','Wed','Thu']
)
Um zu sortieren, verwenden Sie indexOf
:
Alles zusammenfügen:
%Vor%Hier ist eine Funktion, die mir einfällt:
%Vor% Die allgemeine Idee ist, die Wochentage neu zu arrangieren, indem Elemente vom Anfang bis zum Ende basierend auf dem heutigen Tag gedreht werden. Dann verwenden Sie diese Reihenfolge, um Ihr Eingabearray neu zuzuordnen. Anstatt tatsächlich zu sortieren, habe ich nur das daysOfWeek
-Array basierend auf dem Inhalt des Eingabearrays gefiltert.
Ich bin mir nicht sicher, wie gut Array.filter
unterstützt wird, daher sollten Sie vielleicht stattdessen eine generische for-Schleife verwenden, je nachdem, welche Browser Sie unterstützen möchten.
Hier ist ein Spiel , wo du auch damit spielen kannst.
Alternativ können Sie auch die integrierte Methode Array.sort
nach einer ähnlichen Strategie verwenden:
Und hier ist eine weitere Geige , mit der du spielen kannst.
Hier ist ein einfacher Weg, nur mit indexOf, Splice-Filter und Concat-Funktionen von Arrays, keine Schleife erforderlich:
%Vor%Verwenden Sie
%Vor%Tags und Links javascript algorithm function sorting