- 자바스크립트에서 sort 함수 내부에 콜백함수를 정의해서 사용할 때, -1, 0, 1을 주어서 그 앞뒤 순서를 정의할 수 있다. 이때, 내림차순 또는 오름차순 여부에 따라서 개발자는 이 값을 정의할 수 있다. 장점이지만 이 메서드를 오랜만에 쓰면 개념을 잊고 매번 검색하게 되어 불편을 겪고 있던 와중, localeCompare 메서드를 알게 되었다.
String.prototype.localeCompare
활용
https://programmers.co.kr/learn/courses/30/lessons/12915
첫 풀이
function solution(strings, n) {
return strings.sort().sort((a, b) => {
if (a[n] === b[n]) return 0
if (a[n] < b[n]) return -1
return 1
})
}
- sort 메서드를 사용할 때, 내부에서 오름차순 / 내림차순 정렬 여부를 정의하기 위해 1 또는 -1을 반환하여 내장 메서드를 직접 커스텀할 수 있다.
- 이를 그동안 수동적으로만 구현했는데, localeCompare 메서드를 오늘 처음 알게 되었다.
수정한 풀이
function solution(strings, n) {
return strings.sort().sort((a, b) => a[n].localeCompare(b[n]))
}