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

Bagaimanakah Saya Boleh Menyusun Susunan Objek JavaScript mengikut Tarikh dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2024-12-29 12:52:10
asal
687 orang telah melayarinya

How Can I Efficiently Sort a JavaScript Array of Objects by Date?

Mengisih Tatasusunan Objek mengikut Harta Tarikh

Tatasusunan JavaScript boleh mengandungi objek dengan pelbagai sifat, termasuk tarikh. Mengisih tatasusunan ini mengikut tarikh boleh menjadi penting untuk mengatur dan memanipulasi data dengan cekap.

Menggunakan Fungsi Isih dengan Pembanding Tersuai

Untuk mengisih tatasusunan objek mengikut sifat tarikh, pertimbangkan untuk menggunakan fungsi isihan terbina dalam ditambah dengan fungsi pembanding tersuai. Pembanding mentakrifkan cara untuk menentukan susunan relatif dua objek berdasarkan sifat tarikhnya:

array.sort(function(a, b) {
  // Convert strings to dates
  var dateA = new Date(a.date);
  var dateB = new Date(b.date);

  // Sort descending by comparing timestamps
  return dateA - dateB; // Date closest to current time first
});
Salin selepas log masuk

Dalam contoh ini, kami menukar rentetan yang mewakili tarikh kepada objek Tarikh dan menolak satu daripada yang lain. Pengisihan diterbalikkan kerana kami menolak tarikhB daripada tarikhA, mengisih secara berkesan dalam tertib menurun.

Pendekatan Pengisihan Generik

Mekanisme pengisihan yang lebih generik boleh dicapai dengan mentakrifkan fungsi tersuai yang mengambil dua objek (o1 dan o2) dan mengembalikan nombor yang menunjukkan pengisihan tertib:

array.sort(function(o1, o2) {
  if (sort_o1_before_o2) return -1;
  if (sort_o1_after_o2) return 1;
  return 0; // If dates are equal
});
Salin selepas log masuk

Pembolehubah sort_o1_before_o2 dan sort_o1_after_o2 perlu ditakrifkan dan ditetapkan dengan sewajarnya untuk menentukan susunan isihan berdasarkan syarat tertentu.

Isih Lanjutan dan Berkuasa dengan Transformasi Schwartzian

Untuk yang teguh dan fleksibel pendekatan pengisihan, anda boleh memanjangkan prototaip Array dengan fungsi sortBy tersuai menggunakan penjelmaan Schwartzian:

(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) {
    // ... Implement the sorting logic as defined in the previous examples
  }
})();

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

Fungsi sorting lanjutan ini membolehkan pengisihan ringkas dan boleh disesuaikan untuk pelbagai senario.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Susunan Objek JavaScript mengikut Tarikh dengan Cekap?. 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