본문 바로가기
의문점 해결하기

[JS] [12, 13, 1, 2]를 sort()한 결과가 sort((a,b) => a-b)한 결과랑 같을까?

by 1two13 2023. 5. 1.
728x90
반응형

문제의 답은 일단 같지 않다 이다. 

 

놀랍게도 콘솔창에서 확인해보면 결과 값은 아래와 같다.

콘솔

 

이유는 뭘까?

그 이유는 우선 mdn에서 확인해 볼 수 있었다. 

출처: mdn

위의 사진에서 확인할 수 있듯이, sort 메소드는 요소를 문자열로 변환하고, 변환된 문자열을 비교하여 정렬한다. 

 

그래서 위의 예제에서 2가 12보다 앞에 오지만 문자열로 변환되어, 유니 코드 순서에서 1은 2보다 작기 때문에 12가 2보다 앞에 정렬되게 된 것이다.

 

정리하자면, 정확한 정렬을 하기 위해서는(예외 케이스를 피하기 위해서는) sort((a,b) => a-b)와 같이 작성해주는 것이 좋다. 

 

 

참고자료


 

 


질문이나 잘못된 점은 댓글로 남겨주세요 :)💖

728x90
반응형

댓글