- 프로그래머스 코딩테스트 중 새로운 함수를 보게되어 작성한다
localeCompare()
let number = referenceStr.localeCompare(compareString, locales, options)
- referenceStr: 기준문자열
- compareString: 비교할 문자열
- locales: 어느 나라 기준인지? 로케일참조
- options: {numeric: true}, { sensitivity: 'base' }
- sensitivity가 "base" 이면 대소문자 구분 안한다.
- sensitivity가 "case" 이면 대소문자 구분한다.
- number: referenceStr이 compareString보다 크면 1, 작으면 -1, 같으면 0으로 반환된다.
이것을 sort 함수와 사용하면 사전순서로 정렬이 가능하다
arr.sort((a, b) => a - b)
- sort 함수의 리턴값이 0보다 작을경우 a가 b보다 앞으로 오도록 정렬
- sort 함수의 리턴값이 0일 경우 순서를 변경안함
- sort 함수의 리턴값이 0보다 클경우 b가 a보다 앞으로 오도록 정렬
- sort((a, b) => a - b) 이건 오름차순
- sort((a, b) => b - a) 이건 내림차순
- sort 함수의 성질을 이용하면 referenceStr이 compareString보다 크면 1을 리턴하기 때문에 오름차순으로 정렬이 가능해진다.
console.log(["sun", "bed", "car"].sort((a, b) => a.localeCompare(b)));