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.
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.
Antes de ES2019, la estabilidad de Array.sort() dependía del navegador:
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.
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