sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다.
기본 정렬 순서는 문자열의 유니코드 포인트를 따릅니다.
arr.sort([compareFunction])
compareFunction이 제공되지 않으면 요소를 문자열로 변환하고 유니코드 포인트 순서로 문자열을 비교하여 정령함.
compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬됨.
compareFunction이 (a, b) < 0 인 경우 a , b 순으로 정렬
compareFunction이 (a, b) > 0 인 경우 b , a 순으로 정렬
compareFunction이 0을 반환하면 a, b를 변경x
function compare(a,b) {
if(a < b) return -1; // a b 순 정렬
if(a > b) return 1; // b a 순 정렬
if(a == b) return 0; // 그대로 ...
}
function compareNumbers(a, b) {
return a - b;
}
function compareNumbers(a, b) {
return b - a ;
}
localeCompare 메서드는 참조 문자열이 정렬 순서에서 앞 또는 뒤에 오는지 또는 주어진 문자열과 같은지를 숫자로 반환
referenceStr.localeCompare(compareString[, locales[, options]])
referenceStr이 compareString보다 앞에 있으면 -1, 뒤에 있으면 1, 같으면 0 반환
'a'.localeCompare('b') // -1 ,
'b'.localeCompare('a') // 1
'c'.localeCompare('c') // 0