"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Es Array.sort() estable en diferentes navegadores?

¿Es Array.sort() estable en diferentes navegadores?

Publicado el 2024-11-12
Navegar:162

Is Array.sort() Stable in Different Browsers?

Estabilidad del método Array.sort() en diferentes navegadores

La especificación ECMA Script sigue siendo independiente del algoritmo y la estabilidad del Array. método ordenar(). Sin embargo, las actualizaciones y descubrimientos recientes han arrojado luz sobre el comportamiento de este método en varios navegadores.

ES2019 y más allá

A partir de ES2019, el método de clasificación ahora es necesario para mantener el orden de los elementos en caso de valores duplicados. Esto significa que se garantiza que Array.sort() será estable en navegadores compatibles con ES2019 y versiones posteriores.

Compatibilidad con navegadores antiguos

Antes de ES2019, la estabilidad de Array.sort() dependía del navegador:

  • Internet Explorer (IE6): Estable
  • Firefox ( Inestable
  • Firefox (>= 3): Estable
  • Chrome ( Inestable
  • Chrome (>= 70): Estable
  • Opera ( Inestable
  • Opera (>= 10): Estable
  • Safari (4): Estable
  • Borde (para matrices más largas): Inestable

V8 Anomalía

En ciertas versiones de V8 (el motor JavaScript utilizado por Chrome y Node.js), el algoritmo de clasificación puede cambiar de estable a inestable dependiendo del tamaño de la matriz. Para demostrar este comportamiento, considere el siguiente caso de prueba:

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 

Este código simula una matriz de pares con coordenadas x aleatorias y coordenadas y crecientes. Una clasificación estable mantendría el orden de los elementos con la misma coordenada x (en este caso, la coordenada y debería ser secuencial). Sin embargo, algunos navegadores (especialmente las versiones anteriores de Chrome) pueden mostrar inestabilidad al ordenar matrices más grandes.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3