-
20230105 TIL 동작 방식이 내 맘 같지 않을 때 공식 문서를 꼭 확인하자TIL 2023. 1. 5. 18:24
오늘 코딩테스트 문제를 풀 때 정렬을 해야했다.
보통 .sort()를 하면 대부분 오름차순으로 정렬을 해주고,
자바스크립트도 당연히 숫자를 오름차순으로 정렬을 할 것을 기대하고 문제를 풀었다.
그런데 어제 이미 풀었기 때문에 로직도 동일한 문제가 통과가 되지 않는 것이었다.
아무리 해도 통과가 되지 않아서 내림차순으로 정렬을 하고 로직을 수정해보았다.
내림차순으로 정렬을 하려면 비교함수를 작성해주어야 했는데,
그렇게 하니 잘 작동을 하는 것이었다.
그래서 기존 오름차순 방식에도 비교함수를 적어주었는데,
그제서야 통과를 하였다.
오름차순 방식은 비교함수를 적어주지 않아도 되는줄 알고 있었는데, 그렇지 않았던 것이다.
그래서 공식문서를 찾아보았다.그랬더니 위 사진처럼 정렬이.... 나의 예상과 다르게 되는 것을 볼 수 있었다.
자바스크립트는 비교함수를 명시하지 않으면 문자열로 바꾸고, UTF-16 코드 순으로 비교가 된다고 한다.
따라서 오름차순으로 정렬을 하고 싶다면 비교함수를 명시해주어야 했던 것이다.
너무나 당연히 받아들이고 있던 부분을 완전 잘못알고 있었다.
언어들마다 작동 방식이 다를 수 있으니 항상 뭔가 내 예상과 다르다면
꼭 공식문서를 확인해서 제대로된 개념을 얻고 글로 정리하는 습관을 들여야겠다.'TIL' 카테고리의 다른 글
20230107 TIL 테스트 코드의 중요성 (0) 2023.01.07 20230106 TIL PUT인가 PATCH인가 그것이 고민이로다 (0) 2023.01.06 20230104 TIL 요구사항을 제대로 파악하자 (0) 2023.01.04 20230103 TIL codeceptJS 인수테스트 디버깅하기 (0) 2023.01.03 20230102 TIL 작성자인지에 따라 다른 UI를 보여주기 (0) 2023.01.02