Pengenalan
Pengisihan tatasusunan ialah operasi asas dalam JavaScript. Walau bagaimanapun, kestabilan kaedah Array.sort() berbeza-beza merentas pelayar yang berbeza.
Skrip dan Kestabilan ECMA
Spesifikasi Skrip ECMA tidak mentakrifkan algoritma pengisihan tertentu atau nyatakan sama ada jenis itu harus stabil. Ini bermakna pelayar yang berbeza mungkin melaksanakan pendekatan yang berbeza, menghasilkan ciri kestabilan yang berbeza-beza.
Kestabilan Merentas Penyemak Imbas Tertentu
Contoh Kes Ujian
Untuk menunjukkan kestabilan kaedah isihan, kes ujian yang melibatkan pasangan nilai boleh dibuat:
<code class="javascript">function Pair(_x, _y) { this.x = _x; this.y = _y; } function pairSort(a, b) { return a.x - b.x; } var check = []; for (var i = 0; i < 100; ++i) { check.push(new Pair(Math.random() * 3 + 1, ++y)); } check.sort(pairSort);</code>
Jika isihan itu stabil, nilai akan diisih berdasarkan nilai xnya dahulu, dan kemudian mengikut nilai ynya, supaya susunan nilai asal dengan nilai x yang sama terpelihara. Sebaliknya, isihan yang tidak stabil mungkin menghasilkan susunan yang berbeza untuk nilai dengan nilai x yang sama.
Atas ialah kandungan terperinci Adakah Kaedah Array.sort() JavaScript Stabil Merentas Semua Pelayar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!