Heim > Web-Frontend > js-Tutorial > Wie kann ich in JavaScript ein Array von Objekten nach Datum in absteigender Reihenfolge sortieren?

Wie kann ich in JavaScript ein Array von Objekten nach Datum in absteigender Reihenfolge sortieren?

Susan Sarandon
Freigeben: 2024-12-27 16:04:10
Original
737 Leute haben es durchsucht

How Can I Sort an Array of Objects by Date in Descending Order in JavaScript?

Sortieren von Objektarrays nach Datumseigenschaft

Problem: Sie haben ein Array von Objekten mit einer Datumseigenschaft und möchten um es in absteigender Reihenfolge basierend auf dem Datum zu sortieren, das dem am nächsten kommt vorhanden.

Lösung:

Verwenden eines benutzerdefinierten Komparators:

Ein Ansatz besteht darin, die integrierte Sortierung zu verwenden( )-Methode zusammen mit einer benutzerdefinierten Komparatorfunktion. Die Komparatorfunktion nimmt zwei Objekte als Argumente, a und b, und gibt einen negativen, positiven oder Nullwert zurück, wenn a vor b, nach b stehen soll bzw. wenn sie an der gleichen Position bleiben sollen.

Zum Sortieren nach Datum würde die Komparatorfunktion die Datumszeichenfolgen in JavaScript-Daten umwandeln und diese subtrahieren:

array.sort(function(a, b) {
  return new Date(b.date) - new Date(a.date);
});
Nach dem Login kopieren

Generisch Lösung:

Eine allgemeinere Lösung besteht darin, eine benutzerdefinierte sortBy()-Funktion zu definieren, die eine Schwartz'sche Transformation für das Array durchführt. Mit dieser Funktion kann nach jeder Eigenschaft sortiert werden, nicht nur nach dem Datum.

(function() {
  if (!Array.prototype.sortBy) Array.prototype.sortBy = sb;

  function sb(f) {
    // ... implementation
  }
})();
Nach dem Login kopieren

Mit dieser benutzerdefinierten Funktion können Sie wie folgt nach der Datumseigenschaft sortieren:

array.sortBy(function(o) { return o.date });
Nach dem Login kopieren

Umgang mit komplexen Datumsvergleichen:

Wenn Ihre Datumseigenschaft nicht direkt vergleichbar ist, können Sie daraus einen vergleichbaren Wert extrahieren, z. B. ein JavaScript-Datum Objekt:

array.sortBy(function(o) { return new Date(o.date) });
Nach dem Login kopieren

Sortieren nach mehreren Kriterien:

Sie können auch die Funktion sortBy() verwenden, um nach mehreren Kriterien zu sortieren. Geben Sie einfach ein Array von Werten aus der Komparatorfunktion zurück:

// Sort by date, then score (reversed), then name
array.sortBy(function(o) { return [o.date, -o.score, o.name] });
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich in JavaScript ein Array von Objekten nach Datum in absteigender Reihenfolge sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage