Heim > Web-Frontend > js-Tutorial > Wie führt man eine stabile Sortierung in JavaScript durch, um die Konsistenz der Elementreihenfolge aufrechtzuerhalten?

Wie führt man eine stabile Sortierung in JavaScript durch, um die Konsistenz der Elementreihenfolge aufrechtzuerhalten?

Susan Sarandon
Freigeben: 2024-10-18 20:42:03
Original
626 Leute haben es durchsucht

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

Stabile Sortieralgorithmen in JavaScript

Beim Sortieren von Daten ist die Beibehaltung der ursprünglichen Reihenfolge gleicher Elemente für stabile Sortieralgorithmen von entscheidender Bedeutung. In diesem Zusammenhang zielen wir darauf ab, ein Array von Objekten mit einem bestimmten Schlüssel in einer bestimmten Reihenfolge zu sortieren und gleichzeitig die Konsistenz der Elementreihenfolge beizubehalten.

Stabile Sortiertechnik

Interessanterweise sogar Instabile Sortierfunktionen können eine stabile Sortierung erreichen. Indem wir die Anfangsposition jedes Elements vor dem Sortieren erfassen, können wir Unentschieden im Sortiervergleich auflösen, indem wir die Position als sekundäres Kriterium verwenden.

Implementierung in 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>
Nach dem Login kopieren

Beispielverwendung

<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>
Nach dem Login kopieren

Diese Technik ermöglicht eine stabile Sortierung in JavaScript, wobei die ursprüngliche Reihenfolge von Elementen mit gleichen Werten erhalten bleibt.

Das obige ist der detaillierte Inhalt vonWie führt man eine stabile Sortierung in JavaScript durch, um die Konsistenz der Elementreihenfolge aufrechtzuerhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage