JavaScript localeCompare() - 문자열의 일부를 기준으로 정렬해보자

sun_ovo·2024년 11월 4일
0

localeCompare(compareString, locales, options);

⇒ 참조 문자열이 정렬 순으로 지정된 문자열 앞 혹은 뒤에 오는지 또는 동일한 문자열인지 나타내는 수치를 반환

  • 매개변수
    • compareString
      • referenceStr가 비교되는 문자열
    • locales와 options
      • 함수의 동작을 사용자 정의하여 응용 프로그램에서 포맷 규칙을 사용할 언어를 지정

  • 반환값
    • compareString 전에 referenceStr가 위치하는 경우 음수
    • compareString 후에 referenceStr가 위치하는 경우 양수
    • 동등할 경우 0

  • 사용 예시
    • '레벨 닉네임'의 형태로 복수개의 데이터가 들어온 상황
    • 닉네임을 기준으로 사전순 정렬 후 출력해야 함
    • 단순히 sort()를 사용할 경우 레벨을 기준으로 정렬됨

    • 시도 1
      const result = rooms[item].members.sort((a, b) => a.split(' ')[1] - b.split(' ')[1]);
      • 이는 문자열의 비교가 아닌 숫자 비교 연산이기 때문에 잘못된 접근임

    • 시도 2
      const result = rooms[item].members.sort((a, b) => a.split(' ')[1].localeCompare(b.split(' ')[1]));
      • '레벨 닉네임'을 ['레벨', '닉네임'] 으로 변경 후 닉네임을 기준으로 문자열 비교


https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
profile
개발자의 기초 다지기 ₍ ᐢ. ̫ .ᐢ ₎

0개의 댓글