Rumah >hujung hadapan web >tutorial js >Bagaimanakah `localeCompare` JavaScript Boleh Mencapai Pengisihan Semulajadi Rentetan Alfanumerik?
Isih Semulajadi Rentetan Alphanumerik dalam JavaScript dengan LocaleCompare
Dalam JavaScript, mengisih tatasusunan yang mengandungi gabungan nombor, teks dan gabungan boleh menjadi satu cabaran. Algoritma pengisihan tradisional mungkin tidak mengendalikan rentetan ini seperti yang diharapkan, membawa kepada hasil yang salah.
Untuk kes sedemikian, penyemak imbas kini menyediakan fungsi localeCompare, yang menawarkan keupayaan pengisihan semula jadi. Dengan mendayakan pilihan berangka, localeCompare boleh mengenali nombor dalam rentetan dengan bijak dan mengisihnya dengan sewajarnya.
const result = '123asd'.localeCompare('19asd', undefined, { numeric: true, sensitivity: 'base' }); console.log(result); // 1
Dalam contoh di atas, '123asd' dianggap lebih besar daripada '19asd' kerana nombor diisih dalam menaik pesanan. Pilihan sensitiviti ditetapkan kepada 'asas' untuk melakukan perbandingan tidak peka huruf besar-kecil.
Untuk set data yang besar, menggunakan objek Intl.Collator dan bukannya localeCompare disyorkan untuk prestasi.
const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' }); const myArray = ['1_Document', '11_Document', '2_Document']; myArray.sort(collator.compare);
Pengisihan yang dioptimumkan ini memastikan pengisihan semula jadi yang tepat, mengendalikan kedua-dua nombor dan teks dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah `localeCompare` JavaScript Boleh Mencapai Pengisihan Semulajadi Rentetan Alfanumerik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!