[JavaScript] localeCompare 메서드

호이·2022년 6월 7일
0
  • 자바스크립트에서 sort 함수 내부에 콜백함수를 정의해서 사용할 때, -1, 0, 1을 주어서 그 앞뒤 순서를 정의할 수 있다. 이때, 내림차순 또는 오름차순 여부에 따라서 개발자는 이 값을 정의할 수 있다. 장점이지만 이 메서드를 오랜만에 쓰면 개념을 잊고 매번 검색하게 되어 불편을 겪고 있던 와중, localeCompare 메서드를 알게 되었다.

String.prototype.localeCompare

  • [mdn] String.prototype.localeCompare
  • localeCompare 메서드는 String 객체의 내장 메서드로, 정렬 순서에서 앞에 오는지, 뒤에 오는지 그 여부를 반환하는 메서드이다. 따라서, 이 메서드를 활용해서 정렬 순서에서 매번 헷갈리는 -1, 1을 처리할 수 있다!

활용

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]))
}
profile
매일 부활하는 개복치

0개의 댓글