Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengisih Rentetan dengan Betul dalam JavaScript?

Bagaimana untuk Mengisih Rentetan dengan Betul dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-11-24 18:40:25
asal
435 orang telah melayarinya

How to Correctly Sort Strings in JavaScript?

Isih Rentetan dalam JavaScript

Banyak pembangun JavaScript menghadapi cabaran apabila cuba mengisih senarai objek berdasarkan atribut rentetan disebabkan oleh keunikan tingkah laku rentetan dalam JavaScript. Artikel ini meneroka penyelesaian kepada isu biasa ini.

Masalah:

Seperti yang anda temui, hanya tolak satu rentetan daripada rentetan yang lain, seperti dalam a.attr - b.attr , tidak mengisih rentetan dalam JavaScript dengan tepat. Ini kerana JavaScript menganggap rentetan sebagai aksara Unikod dan operasi aritmetik asas tidak sesuai untuk membandingkannya.

Penyelesaian:

Untuk mengisih rentetan dengan berkesan, anda boleh menggunakan String.prototype.localeCompare kaedah. Kaedah ini menyediakan perbandingan rentetan yang sensitif setempat, menjadikannya lebih sesuai untuk pengisihan. Berikut ialah versi kod anda yang dikemas kini menggunakan localeCompare:

list.sort(function(a, b) {
    return ('' + a.attr).localeCompare(b.attr);
});
Salin selepas log masuk

Perhatikan bahawa kami telah menambah gabungan rentetan kosong ('' a.attr) untuk memastikan kedua-dua nilai dipaksa menjadi rentetan. Ini adalah untuk mengelakkan kemungkinan pengecualian.

Alternatif:

Jika anda lebih suka pendekatan yang lebih ringkas dan tidak perlu mempertimbangkan kepekaan setempat, anda boleh menggunakan yang berikut coretan kod:

if (item1.attr < item2.attr)
    return -1;
if ( item1.attr > item2.attr)
    return 1;
return 0;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Rentetan dengan Betul dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan