Cara menggunakan pengisihan tatasusunan JS: kaedah sort() untuk pengisihan tersuai
Dalam JavaScript, tatasusunan ialah jenis data yang sangat biasa dan penting. Apabila kita perlu mengisih elemen dalam tatasusunan, kita boleh menggunakan kaedah sort() tatasusunan. Kaedah sort() mengisih elemen tatasusunan mengikut peraturan pengisihan lalai, tetapi kadangkala kita mungkin perlu menyesuaikan pengisihan tatasusunan mengikut keperluan kita sendiri. Artikel ini akan memperincikan cara menggunakan kaedah sort() untuk pengisihan tersuai dan memberikan contoh kod khusus. Kaedah
sort() ialah kaedah asli bagi objek tatasusunan JavaScript dan fungsinya adalah untuk mengisih tatasusunan. Kaedah sort() mengisih elemen tatasusunan dalam susunan Unicode, yang merupakan peraturan pengisihan lalai. Tetapi apabila elemen dalam tatasusunan adalah rentetan, kaedah sort() tidak menyusun mengikut susunan kamus biasa kami. Untuk melaksanakan pengisihan tersuai, kita boleh menggunakan fungsi perbandingan sebagai parameter kaedah sort().
Fungsi perbandingan digunakan untuk menentukan peraturan pengisihan Ia menerima dua parameter Kami boleh menyesuaikan logik pelaksanaan khusus bagi fungsi perbandingan. Fungsi perbandingan perlu mengembalikan nombor yang mewakili hubungan saiz antara kedua-dua elemen, dengan itu menentukan kedudukannya selepas mengisih. Jika nilai pulangan kurang daripada 0, elemen pertama akan diletakkan lebih awal selepas mengisih; kedua-dua elemen itu akan kekal tidak berubah.
Berikut ialah contoh khusus menggunakan kaedah sort() untuk menyesuaikan pengisihan:
// 数组的原始顺序 var arr = [1, 4, 2, 5, 3]; // 使用自定义比较函数进行排序 arr.sort(function(a, b) { if(a < b) { return -1; // a在b前面 } else if(a > b) { return 1; // a在b后面 } else { return 0; // 位置不变 } }); // 输出排序后的数组 console.log(arr); // [1, 2, 3, 4, 5]
Dalam kod di atas, kami mula-mula menentukan tatasusunan arr
dan terus memanggil kaedah sort() tatasusunan. Parameter kaedah sort() ialah fungsi tanpa nama, dan fungsi tanpa nama ini ialah fungsi perbandingan yang kami takrifkan. arr
,并直接调用了数组的sort()方法。sort()方法的参数为一个匿名函数,这个匿名函数即为我们定义的比较函数。
在比较函数中,我们使用了条件判断语句来判断两个元素的大小关系。如果第一个元素a
小于第二个元素b
,则返回-1,表示a
应该在b
的前面;如果a
大于b
,则返回1,表示a
应该在b
的后面;如果a
等于b
a
kurang daripada elemen kedua b
, maka -1 dikembalikan, menunjukkan bahawa a
harus berada dalam b
>; jika a
lebih besar daripada b
, maka 1 dikembalikan, menunjukkan bahawa a
sepatutnya selepas b; jika Jika <code>a
sama dengan b
, 0 dikembalikan, menunjukkan bahawa kedudukan kedua-dua elemen kekal tidak berubah. Selepas menggunakan fungsi perbandingan tersuai untuk mengisih tatasusunan, kita boleh mendapatkan hasil pengisihan yang memenuhi keperluan kita sendiri. Selain menyusun tatasusunan angka, kami juga boleh menyesuaikan tatasusunan rentetan. Berikut ialah contoh pengisihan tersuai tatasusunan rentetan: // 字符串数组的原始顺序 var arr = ["apple", "banana", "cat", "dog"]; // 使用自定义比较函数进行排序 arr.sort(function(a, b) { return a.localeCompare(b); }); // 输出排序后的数组 console.log(arr); // ["apple", "banana", "cat", "dog"]Dalam kod di atas, kami menggunakan kaedah rentetan localeCompare() untuk membandingkan perhubungan saiz rentetan, dengan itu memperibadikan tatasusunan rentetan. Untuk meringkaskan, langkah-langkah untuk pengisihan tersuai menggunakan kaedah sort() adalah seperti berikut:
Atas ialah kandungan terperinci Pengisihan tersuai: Kaedah pelaksanaan pengisihan menggunakan kaedah sort() tatasusunan JS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!