La spécification ECMA Script reste indépendante de l'algorithme et de la stabilité du tableau. méthode sort(). Cependant, des mises à jour et des découvertes récentes ont mis en lumière le comportement de cette méthode dans divers navigateurs.
Depuis ES2019, la méthode de tri est désormais requis pour maintenir l’ordre des éléments en cas de valeurs en double. Cela signifie qu'Array.sort() est garanti d'être stable dans les navigateurs prenant en charge ES2019 et les versions ultérieures.
Avant ES2019, la stabilité de Array.sort() dépendait du navigateur :
Dans certaines versions de V8 (le moteur JavaScript utilisé par Chrome et Node.js), l'algorithme de tri peut passer de stable à instable selon la taille du tableau. Pour démontrer ce comportement, considérons le scénario de test suivant :
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 Ce code simule un tableau de paires avec des coordonnées x aléatoires et des coordonnées y croissantes. Un tri stable conserverait l'ordre des éléments avec la même coordonnée x (dans ce cas, la coordonnée y doit être séquentielle). Cependant, certains navigateurs (en particulier les versions antérieures de Chrome) peuvent afficher une instabilité lors du tri de tableaux plus grands.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3