„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 08.11.2024
Durchsuche:431

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 dabei 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

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);
};

Beispielverwendung

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 }]

Diese Technik ermöglicht eine stabile Sortierung in JavaScript unter Beibehaltung der ursprünglichen Reihenfolge von Elementen mit gleichen Werten.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729255218 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3