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 });
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 });
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
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!