Cara Mengisih Rentetan dalam JavaScript Menggunakan localeCompare
Apabila cuba mengisih senarai objek berdasarkan atribut rentetan menggunakan pendekatan tradisional list.sort(function (a, b) { return a.attr - b.attr }), anda mungkin menghadapi keputusan yang tidak dijangka. Ini kerana pengendali penolakan (-) tidak secara semula jadi mengisih rentetan dalam JavaScript.
Untuk mengisih rentetan dengan berkesan dalam senario ini, gunakan kaedah String.prototype.localeCompare. Kaedah ini membandingkan dua rentetan dan mengembalikan nombor negatif jika rentetan pertama diisih sebelum rentetan kedua, nombor positif jika rentetan kedua diisih sebelum rentetan pertama, atau sifar jika kedua-dua rentetan adalah sama.
Ini bagaimana anda boleh menyesuaikan kod anda menggunakan localeCompare:
list.sort(function (a, b) { return ('' + a.attr).localeCompare(b.attr); });
Dengan menghantar a.attr secara eksplisit pada rentetan, kami mengelakkan kemungkinan pengecualian. localeCompare menawarkan sokongan sejak Internet Explorer 6 dan Firefox 1.
Atas ialah kandungan terperinci Bagaimana Mengisih Rentetan dengan Betul dalam JavaScript menggunakan `localeCompare`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!