Heim > Web-Frontend > js-Tutorial > Hauptteil

Ist die Array.sort()-Methode von JavaScript in allen Browsern stabil?

Linda Hamilton
Freigeben: 2024-11-04 01:42:30
Original
180 Leute haben es durchsucht

Is JavaScript's Array.sort() Method Stable Across All Browsers?

Stabilität der Methode Array.sort() in allen Browsern

Einführung

Array-Sortierung ist eine grundlegende Operation in JavaScript. Allerdings variiert die Stabilität der Array.sort()-Methode je nach Browser.

ECMA-Skript und Stabilität

Die ECMA-Skriptspezifikation definiert keinen spezifischen Sortieralgorithmus oder geben Sie an, ob die Sortierung stabil sein soll. Dies bedeutet, dass verschiedene Browser möglicherweise unterschiedliche Ansätze implementieren, was zu unterschiedlichen Stabilitätseigenschaften führt.

Stabilität über bestimmte Browser hinweg

  • IE 6-8: Stabil
  • Firefox < 3:Instabil
  • Firefox >= 3:Stabil
  • Chrome < 70:Instabil
  • Chrome >= 70:Stabil
  • Opera < 10:Instabil
  • Opera >= 10:Stabil
  • Safari 4:Stabil
  • Edge (große Arrays):Instabil

Beispieltestfall

Um die Stabilität der Sortiermethode zu demonstrieren, ein Testfall mit Wertepaaren kann erstellt werden:

<code class="javascript">function Pair(_x, _y) {
    this.x = _x;
    this.y = _y;
}
function pairSort(a, b) {
    return a.x - b.x;
}
var check = [];
for (var i = 0; i < 100; ++i) {
    check.push(new Pair(Math.random() * 3 + 1, ++y));
}
check.sort(pairSort);</code>
Nach dem Login kopieren

Wenn die Sortierung stabil ist, werden die Werte zuerst nach ihren x-Werten und dann nach ihren y-Werten sortiert, sodass die ursprüngliche Reihenfolge der Werte mit demselben x-Wert erhalten bleibt bleibt erhalten. Umgekehrt kann eine instabile Sortierung zu unterschiedlichen Reihenfolgen für Werte mit demselben x-Wert führen.

Das obige ist der detaillierte Inhalt vonIst die Array.sort()-Methode von JavaScript in allen Browsern stabil?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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