«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Является ли Array.sort() стабильным в разных браузерах?

Является ли Array.sort() стабильным в разных браузерах?

Опубликовано 12 ноября 2024 г.
Просматривать:806

Is Array.sort() Stable in Different Browsers?

Стабильность метода Array.sort() в разных браузерах

Спецификация сценария ECMA остается независимой от алгоритма и стабильности массива. метод сортировки(). Однако недавние обновления и открытия пролили свет на поведение этого метода в различных браузерах.

ES2019 и последующие версии

Начиная с ES2019, метод сортировки теперь требуется для поддержания порядка элементов в случае дублирования значений. Это означает, что Array.sort() гарантированно будет стабильно работать в браузерах, поддерживающих ES2019 и более поздние версии.

Поддержка устаревших браузеров

До ES2019 стабильность Array.sort() зависел от браузера:

  • Internet Explorer (IE6 ): Стабильная
  • Firefox ( Нестабильная
  • Firefox (>= 3): Стабильная
  • Chrome ( Нестабильная
  • Chrome (>= 70): Стабильная
  • Opera ( Нестабильная
  • Opera (>= 10): Стабильная
  • Safari (4 ): Стабильный
  • Edge (для более длинных массивов): Нестабильный

V8 Аномалия

В некоторых версиях 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