Heim > Web-Frontend > js-Tutorial > Hauptteil

Ist Array.sort() in verschiedenen Browsern stabil?

Mary-Kate Olsen
Freigeben: 2024-11-02 00:03:28
Original
316 Leute haben es durchsucht

Is Array.sort() Stable in Different Browsers?

Array.sort() Methodenstabilität in verschiedenen Browsern

Die ECMA-Skriptspezifikation bleibt unabhängig vom Algorithmus und der Stabilität des Arrays .sort()-Methode. Jüngste Aktualisierungen und Entdeckungen haben jedoch Aufschluss über das Verhalten dieser Methode in verschiedenen Browsern gegeben.

ES2019 und darüber hinaus

Ab ES2019 ist die Sortiermethode Jetzt erforderlich, um die Elementreihenfolge bei doppelten Werten beizubehalten. Dies bedeutet, dass Array.sort() in Browsern, die ES2019 und spätere Versionen unterstützen, garantiert stabil ist.

Legacy Browser Support

Vor ES2019 war die Stabilität von Array.sort() war browserabhängig:

  • Internet Explorer (IE6 ):Stabil
  • Firefox (< 3):Instabil
  • Firefox (>= 3):Stabil
  • Chrom (< 70): Instabil
  • Chrome (>= 70): Stabil
  • Opera (< 10):Instabil
  • Oper (>= 10): Stabil
  • Safari (4 ):Stabil
  • Edge (für längere Arrays):Instabil

< h3>V8-Anomalie

Mit Sicherheit In Versionen von V8 (der von Chrome und Node.js verwendeten JavaScript-Engine) kann der Sortieralgorithmus je nach Größe des Arrays von stabil auf instabil umschalten. Um dieses Verhalten zu demonstrieren, betrachten Sie den folgenden Testfall:

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

Dieser Code simuliert ein Array von Paaren mit zufälligen x-Koordinaten und zunehmenden y-Koordinaten. Eine stabile Sortierung würde die Reihenfolge der Elemente mit derselben x-Koordinate beibehalten (in diesem Fall sollte die y-Koordinate sequentiell sein). Allerdings kann es bei einigen Browsern (insbesondere früheren Versionen von Chrome) zu Instabilität beim Sortieren größerer Arrays kommen.

Das obige ist der detaillierte Inhalt vonIst Array.sort() in verschiedenen 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