Mengisih Tatasusunan Objek mengikut Harta Tarikh
Untuk mengisih tatasusunan objek mengikut sifat tarikh, anda boleh menggunakan fungsi sort() JavaScript bersempena dengan pembanding tersuai. Proses ini melibatkan membandingkan nilai tarikh dan mengembalikan nilai negatif, positif atau sifar berdasarkan susunannya.
Jawapan Mudah:
array.sort(function(a, b) { return new Date(b.date) - new Date(a.date); });
Pembanding ini mencipta objek tarikh untuk kedua-dua tarikh dan menolak nilainya. Nilai negatif menunjukkan bahawa a lebih dekat dengan tarikh semasa daripada b, nilai positif bermakna b lebih dekat, dan sifar menunjukkan kesamaan.
Jawapan Generik:
array.sort(function(o1, o2) { if (sort_o1_before_o2) return -1; else if (sort_o1_after_o2) return 1; else return 0; });
Pendekatan yang lebih generik ini membolehkan penentuan tersuai bagi susunan pengisihan dengan mentakrifkan syarat yang berasingan untuk pengisihan o1 sebelum atau selepas o2.
Jawapan Berkuasa:
Penyelesaian yang berkuasa adalah untuk mentakrifkan fungsi isihan mengikut tersuai yang tidak boleh dikira menggunakan penjelmaan Schwartzian pada semua tatasusunan:
(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; } })();
Ini membolehkan pengisihan ringkas dan berkuasa:
array.sortBy(function(o) { return o.date });
Anda juga boleh mengembangkan pendekatan ini untuk mengendalikan berbilang kriteria dalam proses pengisihan dengan mengembalikan tatasusunan nilai dalam fungsi pembanding.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Susunan Objek mengikut Harta Tarikh dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!