Mendapatkan Paling Banyak dan Paling Kecil daripada Tatasusunan Integer: Penggantian Rentetan Yang Tidak Dijangka
Tugas mencari nilai tertinggi dan terendah dalam tatasusunan yang hanya terdiri daripada integer nampaknya sangat mudah. Walau bagaimanapun, seperti yang mungkin ditemui, kaedah sort() asli membentangkan halangan yang tidak dijangka. Memandangkan ia mengutamakan susunan abjad secara lalai, pengisihan berangka terbukti lebih mencabar daripada yang dijangkakan. Bagaimanakah kita boleh mengatasi halangan ini dan mengarahkan fungsi sort() untuk memfokuskan pada nilai integer dalam elemen tatasusunan?
Pertimbangkan contoh berikut:
var numArray = [140000, 104, 99]; numArray = numArray.sort(); console.log(numArray);
Jangkaan intuitif akan membawa kita untuk menjangkakan output sebanyak 99, 104, 140000. Walau bagaimanapun, hasilnya berbeza secara drastik: 104, 140000, 99. Tingkah laku pelik ini berpunca daripada kecenderungan semula jadi kaedah sort() untuk menganggap nilai sebagai rentetan, bukannya integer.
Untuk membetulkan isu ini, kami boleh memperkenalkan fungsi pengisihan tersuai untuk mengendalikan nilai angka secara eksplisit. Begini cara kita boleh mencapainya:
var numArray = [140000, 104, 99]; numArray.sort(function(a, b) { return a - b; }); console.log(numArray);
Fungsi sortNumber(a, b) cekap mengendalikan pengisihan berangka yang kita cari. Dengan menolak a daripada b, nilai positif menolak a ke kanan, memastikan nilai yang lebih tinggi muncul kemudian dalam tatasusunan yang diisih. Sebaliknya, nilai negatif menggesa pertukaran, meletakkan nilai yang lebih kecil ke kiri. Fungsi pengisihan tersuai ini memberi kuasa kepada kami untuk mengisih tatasusunan integer dengan tepat, memberikan nilai tertinggi dan terendah seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Tatasusunan Integer dengan Betul dalam JavaScript untuk Mencari Nilai Minimum dan Maksimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!