Rumah >hujung hadapan web >tutorial js >Adakah Array.sort() Stabil dalam Pelayar Berbeza?
Spesifikasi Skrip ECMA kekal agnostik pada algoritma dan kestabilan Array kaedah .sort(). Walau bagaimanapun, kemas kini dan penemuan baru-baru ini telah menjelaskan gelagat kaedah ini dalam pelbagai penyemak imbas.
Setakat ES2019, kaedah isihan ialah kini diperlukan untuk mengekalkan susunan elemen sekiranya berlaku nilai pendua. Ini bermakna Array.sort() dijamin stabil dalam pelayar yang menyokong ES2019 dan versi yang lebih baru.
Sebelum ES2019, kestabilan daripada Array.sort() bergantung kepada pelayar:
Dalam versi tertentu V8 (enjin JavaScript yang digunakan oleh Chrome dan Node.js), algoritma pengisihan mungkin bertukar daripada stabil kepada tidak stabil bergantung pada saiz daripada tatasusunan. Untuk menunjukkan tingkah laku ini, pertimbangkan kes ujian berikut:
<code class="javascript">function Pair(_x, _y) { this.x = _x; this.y = _y; } function pairSort(a, b) { return a.x - b.x; } var y = 0; var check = []; while (check.length < 100) { check.push(new Pair(Math.floor(Math.random() * 3) + 1, ++y)); } check.sort(pairSort);</code>
Kod ini mensimulasikan tatasusunan pasangan dengan koordinat x rawak dan koordinat y yang meningkat. Isih yang stabil akan mengekalkan susunan unsur dengan koordinat-x yang sama (dalam kes ini, koordinat-y hendaklah berjujukan). Walau bagaimanapun, sesetengah penyemak imbas (terutamanya versi Chrome yang lebih awal) mungkin memaparkan ketidakstabilan dalam menyusun tatasusunan yang lebih besar.
Atas ialah kandungan terperinci Adakah Array.sort() Stabil dalam Pelayar Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!