"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Array.sort()는 다른 브라우저에서 안정적입니까?

Array.sort()는 다른 브라우저에서 안정적입니까?

2024년 11월 12일에 게시됨
검색:523

Is Array.sort() Stable in Different Browsers?

다른 브라우저에서의 Array.sort() 메서드 안정성

ECMA 스크립트 사양은 배열의 알고리즘과 안정성에 대해 독립적입니다. sort() 메서드. 그러나 최근 업데이트와 발견을 통해 다양한 브라우저에서 이 방법의 동작이 밝혀졌습니다.

ES2019 및 이후

ES2019부터 정렬 방법은 이제 값이 중복되는 경우 요소 순서를 유지하는 데 필요합니다. 즉, Array.sort()는 ES2019 및 이후 버전을 지원하는 브라우저에서 안정성이 보장됩니다.

레거시 브라우저 지원

ES2019 이전에는 Array.sort()는 브라우저에 따라 다릅니다.

  • Internet Explorer(IE6): Stable
  • Firefox( 불안정
  • Firefox(>= 3): 안정
  • Chrome( 불안정
  • Chrome (>= 70): 안정적
  • Opera ( 불안정
  • Opera (>= 10): 안정적
  • Safari (4 ): 안정
  • Edge(더 긴 배열의 경우): 불안정

V8 이상 현상

특정 버전의 V8(Chrome 및 Node.js에서 사용하는 JavaScript 엔진)에서는 배열 크기에 따라 정렬 알고리즘이 안정적인 상태에서 불안정한 상태로 전환될 수 있습니다. 이 동작을 시연하려면 다음 테스트 사례를 고려하세요.

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