Heim > Web-Frontend > js-Tutorial > Wie sortiere ich ein Array von Objekten nach Datumseigenschaft in JavaScript?

Wie sortiere ich ein Array von Objekten nach Datumseigenschaft in JavaScript?

DDD
Freigeben: 2024-12-21 08:01:09
Original
999 Leute haben es durchsucht

How to Sort an Array of Objects by Date Property 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);
});
Nach dem Login kopieren

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;
});
Nach dem Login kopieren

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;
  }
})();
Nach dem Login kopieren

Dies ermöglicht eine präzise und leistungsstarke Sortierung:

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage