Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Melakukan Pengisihan Stabil dalam JavaScript untuk Mengekalkan Konsistensi Pesanan Elemen?

Bagaimana untuk Melakukan Pengisihan Stabil dalam JavaScript untuk Mengekalkan Konsistensi Pesanan Elemen?

Susan Sarandon
Lepaskan: 2024-10-18 20:42:03
asal
627 orang telah melayarinya

How to Perform Stable Sorting in JavaScript to Maintain Element Order Consistency?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan