Heim  >  Artikel  >  Web-Frontend  >  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
Susan SarandonOriginal
2024-10-18 20:42:03528Durchsuche

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>

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>

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!

Stellungnahme:
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
Vorheriger Artikel:JavaScript-Grundlagen: Teil 5Nächster Artikel:JavaScript-Grundlagen: Teil 5