Heim >Web-Frontend >js-Tutorial >Wie sortiere ich ein Array von Objekten nach Datumseigenschaft in JavaScript?
Sortieren eines Objektarrays nach Datumseigenschaft
Um ein Array von Objekten nach einer Datumseigenschaft zu sortieren, können Sie die Funktion sort() von JavaScript verwenden in Verbindung mit einem benutzerdefinierten Komparator. Der Prozess umfasst den Vergleich der Datumswerte und die Rückgabe eines negativen, positiven oder Nullwerts basierend auf ihrer Reihenfolge.
Einfache Antwort:
array.sort(function(a, b) { return new Date(b.date) - new Date(a.date); });
Dieser Komparator erstellt einen Datumsobjekt für beide Datumsangaben und subtrahiert deren Werte. Ein negativer Wert gibt an, dass a näher am aktuellen Datum liegt als b, ein positiver Wert bedeutet, dass b näher am aktuellen Datum liegt und Null bedeutet Gleichheit.
Allgemeine Antwort:
array.sort(function(o1, o2) { if (sort_o1_before_o2) return -1; else if (sort_o1_after_o2) return 1; else return 0; });
Dieser allgemeinere Ansatz ermöglicht eine individuelle Festlegung der Sortierreihenfolge durch die Definition separater Bedingungen für die Sortierung o1 davor oder danach o2.
Leistungsstarke Antwort:
Eine leistungsstarke Lösung besteht darin, eine benutzerdefinierte, nicht aufzählbare sortBy-Funktion mithilfe einer Schwartzschen Transformation für alle Arrays zu definieren:
(function() { if (typeof Object.defineProperty === 'function') { try { Object.defineProperty(Array.prototype, 'sortBy', { value: sb }); } catch (e) {} } if (!Array.prototype.sortBy) Array.prototype.sortBy = sb; function sb(f) { for (var i = this.length; i;) { var o = this[--i]; this[i] = [].concat(f.call(o, o, i), o); } this.sort(function(a, b) { for (var i = 0, len = a.length; i < len; ++i) { if (a[i] != b[i]) return a[i] < b[i] ? -1 : 1; } return 0; }); for (var i = this.length; i;) { this[--i] = this[i][this[i].length - 1]; } return this; } })();
Dies ermöglicht eine präzise und leistungsstarke Sortierung:
array.sortBy(function(o) { return o.date });
Sie können diesen Ansatz auch erweitern, um mehrere zu verarbeiten Kriterien im Sortierprozess durch Rückgabe eines Arrays von Werten in der Komparatorfunktion.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Objekten nach Datumseigenschaft in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!