Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyusun Susunan Rentetan yang Mengandungi Nombor dalam Susunan Asli?
Isih Semulajadi Elemen Tatasusunan (Rentetan dengan Nombor)
Mengisih tatasusunan rentetan yang mengandungi nombor dalam susunan "semulajadi" menimbulkan cabaran . Algoritma pengisihan lalai merawat setiap aksara secara individu, menghasilkan susunan yang tidak wajar.
Penyelesaian Cadangan: Fungsi NaturalCompare
Untuk mengatasi masalah ini, fungsi JavaScript yang dipanggil naturalCompare boleh dimanfaatkan. Fungsi ini mengikut algoritma khusus untuk membandingkan rentetan, dengan mengambil kira bahagian berangka dan abjad angka secara berasingan.
Pelaksanaan NaturalCompare
Fungsi menghuraikan setiap rentetan ke dalam tatasusunan angka berselang-seli dan segmen bukan angka. Ini membolehkannya membandingkan segmen berangka sebagai integer dan segmen bukan angka secara leksikografik. Fungsi mengembalikan nilai yang menunjukkan sama ada rentetan pertama kurang daripada (-1), sama dengan (0) atau lebih besar daripada (1) rentetan kedua.
Isih Menggunakan NaturalCompare
Untuk mengisih tatasusunan menggunakan susunan semula jadi, gunakan fungsi NaturalCompare pada kaedah isihan. Ini memastikan rentetan itu dibandingkan menggunakan kriteria isihan semula jadi.
Contoh Penggunaan
Berikut ialah contoh penggunaan fungsi NaturalCompare untuk mengisih tatasusunan rentetan yang mengandungi nombor:
// Input array const array = ["IL0 Foo", "PI0 Bar", "IL10 Baz", "IL3 Bob says hello"]; // Sort using naturalCompare array.sort(naturalCompare); // Output array console.log(array); // ["IL0 Foo", "IL3 Bob says hello", "IL10 Baz", "PI0 Bar"]Fungsi naturalCompare boleh dilanjutkan untuk mengendalikan senario yang lebih kompleks dengan menambahkan logik tambahan. Sebagai contoh, seseorang boleh menentukan pembatas antara segmen angka dan bukan angka.
Atas ialah kandungan terperinci Bagaimana untuk Menyusun Susunan Rentetan yang Mengandungi Nombor dalam Susunan Asli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!