Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menyusun Susunan Objek mengikut Tarikh dalam Susunan Menurun dalam JavaScript?

Bagaimanakah Saya Boleh Menyusun Susunan Objek mengikut Tarikh dalam Susunan Menurun dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-12-27 16:04:10738semak imbas

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

Mengisih Tatasusunan Objek mengikut Harta Tarikh

Masalah: Anda mempunyai tatasusunan objek dengan sifat tarikh dan mahu untuk menyusunnya dalam tertib menurun berdasarkan tarikh terdekat dengan hadir.

Penyelesaian:

Menggunakan Pembanding Tersuai:

Satu pendekatan ialah menggunakan jenis terbina dalam( ) kaedah bersama-sama dengan fungsi pembanding tersuai. Fungsi pembanding mengambil dua objek sebagai argumen, a dan b, dan mengembalikan nilai negatif, positif atau sifar jika a harus didahului sebelum b, selepas b, atau jika mereka harus kekal dalam kedudukan yang sama, masing-masing.

Untuk mengisih mengikut tarikh, fungsi pembanding akan menukar rentetan tarikh kepada tarikh JavaScript dan menolaknya:

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

Generik Penyelesaian:

Penyelesaian yang lebih generik ialah mentakrifkan fungsi sortBy() tersuai yang melakukan transformasi Schwartzian pada tatasusunan. Fungsi ini boleh digunakan untuk mengisih mengikut mana-mana harta, bukan hanya tarikh.

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

  function sb(f) {
    // ... implementation
  }
})();

Menggunakan fungsi tersuai ini, anda boleh mengisih mengikut sifat tarikh seperti berikut:

array.sortBy(function(o) { return o.date });

Mengendalikan Perbandingan Tarikh Kompleks:

Jika sifat tarikh anda tidak dapat dibandingkan secara langsung, anda boleh mengekstrak nilai yang setanding daripada ia, seperti objek Tarikh JavaScript:

array.sortBy(function(o) { return new Date(o.date) });

Isih mengikut Berbilang Kriteria:

Anda juga boleh menggunakan fungsi sortBy() untuk mengisih mengikut berbilang kriteria. Hanya kembalikan tatasusunan nilai daripada fungsi pembanding:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Susunan Objek mengikut Tarikh dalam Susunan Menurun dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn