arr.sort([comepareFunction])
- sort() 메서드를 배열에 적용하면 조건에 따른 적절한 정렬 후 배열을 리턴한다. 이 때 원본 배열을 직접 변경하기 때문에 사용시 주의가 필요하다.
- comepareFunction은 두 개의 배열의 요소를 인자로 받는다. 두 요소를 a, b라고 한다면 a와 b를 비교해 얻은 리턴값을 가지고 정렬 순서를 결정한다.
- comepareFunction의 리턴 값이 0보다 작으면 a, b의 순서로 정렬된다.
- comepareFunction의 리턴 값이 0보다 크면 b, a의 순서
숫자 오름차순 정렬
const nums = [1,4,3,5,2];
nums.sort((a,b) => {
if (a < b) return -1; //a, b 순서
if (a > b) return 1; //b, a 순서
}
num.sort((a, b) => a - b}
//a - b < 0 == a < b
//a - b > 0 == b < a
숫자 내림차순 정렬
const nums = [1,4,3,5,2];
nums.sort((a, b) => {
if (a > b) return -1; //a, b 순서
if (a < b) return 1; //b, a 순서
}
num.sort((a, b) => b - a)
//b - a < 0 == a > b
//b - a > 0 == b < a
- compareFunction을 생략하면 모든 요소는 문자열로 취급되고, 유니코드의 값 순서대로 오름차순 정렬된다.
- 문자열의 오름, 내림차순 정렬도 compareFunction의 리턴 값에 의해 똑같이 실행된다.
- compareFunction의 리턴값이 0이면 순서를 변경하지 않는다.
참고