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
Lepaskan: 2024-12-27 16:04:10
asal
737 orang telah melayarinya

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);
});
Salin selepas log masuk

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
  }
})();
Salin selepas log masuk

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

array.sortBy(function(o) { return o.date });
Salin selepas log masuk

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) });
Salin selepas log masuk

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] });
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan