Rumah > hujung hadapan web > tutorial js > Mengapakah Fungsi `sort()` JavaScript Menghasilkan Keputusan Yang Tidak Dijangka Apabila Menyusun Nombor, dan Bagaimanakah Ini Boleh Dibetulkan?

Mengapakah Fungsi `sort()` JavaScript Menghasilkan Keputusan Yang Tidak Dijangka Apabila Menyusun Nombor, dan Bagaimanakah Ini Boleh Dibetulkan?

Mary-Kate Olsen
Lepaskan: 2024-12-27 04:29:10
asal
864 orang telah melayarinya

Why Does JavaScript's `sort()` Function Produce Unexpected Results When Sorting Numbers, and How Can This Be Fixed?

Mengisih Tatasusunan Integer: Memahami Susunan Numerik

Mengisih tatasusunan integer mungkin kelihatan mudah, tetapi keanehan tertentu boleh timbul, menyebabkan kepada keputusan yang tidak dijangka. Pertimbangkan kod berikut:


numArray = numArray.sort();<br>


Secara intuitif, seseorang mungkin menjangkakan kod ini untuk mengisih tatasusunan dalam tertib menaik : [99, 104, 140000]. Walau bagaimanapun, output adalah tidak dijangka: [104, 140000, 99]. Ini kerana kelakuan lalai fungsi isihan adalah untuk merawat elemen sebagai rentetan dan mengisihnya mengikut abjad.

Untuk menyelesaikan isu ini, JavaScript menyediakan mekanisme untuk menyesuaikan proses pengisihan. Dengan memperkenalkan fungsi perbandingan baharu, kita boleh menentukan bagaimana elemen harus diisih.

Dalam kes integer, kita boleh menentukan fungsi isihan berangka:


 kembalikan a - b;<br>});<br>


Fungsi isihan ini hanya menolak satu integer daripada yang lain, menghasilkan nilai positif atau negatif. Nilai positif menunjukkan bahawa argumen pertama (a) adalah lebih besar daripada yang kedua (b), dan sebaliknya.

Dengan menghantar fungsi ini kepada kaedah isihan, kita boleh mengisih tatasusunan secara berkesan secara berangka:




Kini, tatasusunan diisih dengan betul dalam tertib menaik berdasarkan nilai integer unsurnya. Dengan memanfaatkan fungsi perbandingan tersuai, kami boleh mengawal cara tatasusunan diisih dan mencapai hasil yang diingini.

Atas ialah kandungan terperinci Mengapakah Fungsi `sort()` JavaScript Menghasilkan Keputusan Yang Tidak Dijangka Apabila Menyusun Nombor, dan Bagaimanakah Ini Boleh Dibetulkan?. 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
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan