Array.sort 부적절한 예제
Jan 13, 2018
Array.sort
는 파라미터로 compareFunction을 넘겨줄 수 있다.
compareFunction은 0, 음수 또는 양수를 리턴하면서 배열의 순서를 정해준다.
MDN에서 compareFunction 예제로 function (a, b) { return a - b; }
를 봤다.
내가 이것을 이용한다고 아래와 같이 올바르지 않은 compareFunction을 작성한 적이 있다.
1 | function (a, b) { return a > b; } |
위는 앞서 compareFunction을 설명했던 것과 달리 오로지 true
혹은 false
를 반환한다.
따라서 이 boolean 값은 compareFunction의 리턴값으로 적절하지 못하다.
문제는 이것이 알파벳 순 혹은 Ascending 형식으로 크롬에서 동작한다. 그리고 IE11에선 안된다.
어떤 브라우저는 되고 안되고 해서 디버깅하기 까다로운 부분이므로 주의해야 한다.
1 | // Chrome |