Maison > interface Web > js tutoriel > La méthode Array.sort() de JavaScript est-elle stable sur tous les navigateurs ?

La méthode Array.sort() de JavaScript est-elle stable sur tous les navigateurs ?

Linda Hamilton
Libérer: 2024-11-04 01:42:30
original
215 Les gens l'ont consulté

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

Stabilité de la méthode Array.sort() dans les navigateurs

Introduction

Le tri des tableaux est une opération fondamentale en JavaScript. Cependant, la stabilité de la méthode Array.sort() varie selon les navigateurs.

Script ECMA et stabilité

La spécification ECMA Script ne définit pas d'algorithme de tri spécifique. ou spécifiez si le tri doit être stable. Cela signifie que différents navigateurs peuvent implémenter différentes approches, ce qui entraîne des caractéristiques de stabilité variables.

Stabilité sur des navigateurs spécifiques

  • IE 6-8 : Stable
  • Firefox < 3 : Instable
  • Firefox >= 3 : Stable
  • Chrome < 70 : Instable
  • Chrome >= 70 : Stable
  • Opéra < 10 : Instable
  • Opéra >= 10 : Stable
  • Safari 4 : Stable
  • Edge (grands tableaux) :Instable

Exemple de cas de test

Pour démontrer la stabilité de la méthode de tri, un cas de test impliquant des paires de valeurs peut être créé :

<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>
Copier après la connexion

Si le tri est stable, les valeurs seront triées en fonction de leurs valeurs x d'abord, puis de leurs valeurs y, de telle sorte que l'ordre d'origine des valeurs avec la même valeur x est préservé. À l'inverse, un tri instable peut entraîner des ordres différents pour les valeurs ayant la même valeur x.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal