ECMA 스크립트 사양은 배열의 알고리즘과 안정성에 대해 독립적입니다. sort() 메서드. 그러나 최근 업데이트와 발견을 통해 다양한 브라우저에서 이 방법의 동작이 밝혀졌습니다.
ES2019부터 정렬 방법은 이제 값이 중복되는 경우 요소 순서를 유지하는 데 필요합니다. 즉, Array.sort()는 ES2019 및 이후 버전을 지원하는 브라우저에서 안정성이 보장됩니다.
ES2019 이전에는 Array.sort()는 브라우저에 따라 다릅니다.
특정 버전의 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