Algoritma Pengisihan Stabil dalam JavaScript
Apabila mengisih data, mengekalkan susunan asal unsur yang sama adalah penting untuk algoritma pengisihan yang stabil. Dalam konteks ini, kami menyasarkan untuk mengisih tatasusunan objek dengan kunci khusus dalam susunan tertentu sambil mengekalkan ketekalan susunan elemen.
Teknik Isih Stabil
Menariknya, walaupun fungsi pengisihan yang tidak stabil boleh mencapai pengisihan yang stabil. Dengan menangkap kedudukan awal setiap elemen sebelum mengisih, kita boleh memutuskan hubungan dalam perbandingan pengisihan menggunakan kedudukan sebagai kriteria kedua.
Pelaksanaan dalam JavaScript
<code class="javascript">const sortBy = (arr, key, order) => { // Capture element positions const positions = arr.map((item, i) => { return { item, position: i }; }); // Perform sorting positions.sort((a, b) => { let cmp = a.item[key].localeCompare(b.item[key]); if (cmp === 0) { // Tiebreaker: sort by position cmp = a.position - b.position; } if (order === "desc") { return cmp * -1; } else { return cmp; } }); // Return sorted objects return positions.map(position => position.item); };</code>
Contoh Penggunaan
<code class="javascript">const data = [ { name: "Alice", age: 25 }, { name: "Bob", age: 30 }, { name: "Eve", age: 25 }, ]; const sortedAscending = sortBy(data, "age", "asc"); console.log(sortedAscending); // [{ name: "Alice", age: 25 }, { name: "Eve", age: 25 }, { name: "Bob", age: 30 }] const sortedDescending = sortBy(data, "age", "desc"); console.log(sortedDescending); // [{ name: "Bob", age: 30 }, { name: "Eve", age: 25 }, { name: "Alice", age: 25 }]</code>
Teknik ini membenarkan pengisihan yang stabil dalam JavaScript, mengekalkan susunan asal unsur dengan nilai yang sama.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengisihan Stabil dalam JavaScript untuk Mengekalkan Konsistensi Pesanan Elemen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!