Спецификация сценария ECMA остается независимой от алгоритма и стабильности массива. метод сортировки(). Однако недавние обновления и открытия пролили свет на поведение этого метода в различных браузерах.
Начиная с ES2019, метод сортировки теперь требуется для поддержания порядка элементов в случае дублирования значений. Это означает, что Array.sort() гарантированно будет стабильно работать в браузерах, поддерживающих ES2019 и более поздние версии.
До ES2019 стабильность Array.sort() зависел от браузера:
В некоторых версиях V8 (движок JavaScript, используемый Chrome и Node.js) алгоритм сортировки может переключаться со стабильного на нестабильный в зависимости от размера массива. Чтобы продемонстрировать такое поведение, рассмотрим следующий тестовый пример:
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 Этот код моделирует массив пар со случайными координатами x и увеличивающимися координатами y. Стабильная сортировка будет поддерживать порядок элементов с одинаковой координатой x (в этом случае координата y должна быть последовательной). Однако некоторые браузеры (особенно более ранние версии Chrome) могут работать нестабильно при сортировке больших массивов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3