Javascript 배열의 내장 함수 sort()에 대해 이전에 간단히 정리한적이 있지만 이용 방식을 확실히 알고 가도록 다시 정리해보자.
arrayObj.sort(sortFunction)
임의의 Array 객체에 대해서 정렬을 수행하는 함수이다.
sortFunction에는 정렬 기준을 결정하는 데 사용되는 함수를 추가할 수 있다. sortFunction은 임의의 a, b 두개의 요소를 파라미터로 입력받는다. 이 때 정렬 조건은 다음과 같다.
ex) 함수 리턴 값을a - b
라고 했을 때,
- 리턴 값이 0보다 작을 경우, a가 b보다 앞에 오도록 정렬한다.
- 리턴 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬한다.
이 조건을 이용하여 숫자, 문자열에 대한 오름차순과 내림차순 정렬을 할 수 있다.
오름차순을 기준으로 설명해보자면
순서대로 data
의 name
값을 비교해가면서,
- a가 b보다 작을 경우엔 -1을 리턴하여 a가 b보다 앞에 오도록
- a가 b보다 클 경우엔 1을 리턴하여 b가 a보다 앞에 오도록
- a와 b가 같을 경우엔 0을 리턴하여 순서를 변경하지 않도록 정렬해준다.