Contoh dalam artikel ini menerangkan cara js menggunakan Array.prototype.sort() untuk mengisih objek tatasusunan. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Apabila bercakap tentang menyusun objek tatasusunan, mari kita lihat secara ringkas pada Array.prototype.sort(). Kaedah isihan menerima satu parameter - Fungsi Fungsi ini akan menyediakan dua parameter, iaitu dua elemen untuk dibandingkan. Jika elemen jenis String, ia akan dibandingkan melalui kod Unicode nilai akan dibandingkan. Jika fungsi perbandingan mengembalikan 1, kedua-dua elemen bertukar kedudukan 0 dan -1 tidak bertukar kedudukan. Mari lihat contoh dahulu:
var arr = [3, 5, 2, 1] ;
// Isih daripada kecil kepada besar
arr.sort(fungsi (a, b) {
Kembalikan a > b ?
});
// Keputusan diperoleh: [1, 2, 3, 5]
Jadi kembali kepada topik kita, jika kita menyusun objek tatasusunan, bagaimana kita harus menulisnya? Sebenarnya prinsipnya sama seperti di atas, seperti:
var arr = [
{ a : 2, b : 3.2},
{ a : 3, b : 1.2},
{ a : 4, b : 2.2},
{ a : 6, b : 1.2},
{ a : 5, b : 3.2}
]
/// Isih mengikut atribut b daripada kecil kepada besar
arr.sort(function(x, y){
Kembalikan x.b > 1:-1;
});
x dan y ialah unsur arr, iaitu objek, jadi bandingkan sifat kedua-dua objek secara langsung.
Dalam contoh di atas, terdapat pendua dalam elemen terkecil Jika keperluannya ialah: isikan terlebih dahulu mengikut atribut b daripada kecil kepada besar, dan jika terdapat pendua dalam elemen terkecil, kemudian susun mengikut atribut Bagaimana patutkah saya menulisnya?
Apabila mengisih, isikan dahulu mengikut atribut b Jika x.b lebih besar daripada y.b, gerakkan x ke kanan y. Jika x.b sama dengan y.b, bandingkan x.a dan y.a, jadi kodnya adalah seperti berikut:
arr.sort(function (x, y) {
Jika (x.b > y.b) {
kembali 1;
} lain jika (x.b === y.b) {
kembalikan x.a > 1 : -1;
} lain jika (x.b < y.b) {
kembali -1;
}
})
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.