Rumah >hujung hadapan web >tutorial js >js menggunakan Array.prototype.sort() untuk mengisih kemahiran objects_javascript array

js menggunakan Array.prototype.sort() untuk mengisih kemahiran objects_javascript array

WBOY
WBOYasal
2016-05-16 16:17:321357semak imbas

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:

Salin kod Kod adalah seperti berikut:
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:

Salin kod Kod adalah seperti berikut:
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:

Salin kod Kod 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.

Kenyataan:
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