자바스크립트에서 정수 배열을 정렬할 때는 sort() 메서드를 사용합니다. 다만 기본 sort()는 요소를 문자열로 변환한 뒤 사전순으로 비교하기 때문에, 숫자 배열을 정렬할 때는 반드시 비교 함수(compare function)를 함께 전달해야 올바른 결과를 얻을 수 있습니다.
예제
다음은 정수 배열을 오름차순으로 정렬하는 코드입니다.
var arrayOfIntegers = [67, 45, 98, 52];
arrayOfIntegers.sort(function (first, second) {
return first - second;
});
console.log(arrayOfIntegers);위 프로그램을 실행하려면 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo310.js라고 가정합니다.
출력 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
PS C:\Users\Amit\javascript-code> node demo310.js [ 45, 52, 67, 98 ]
비교 함수의 동작 원리
비교 함수가 음수를 반환하면 첫 번째 요소가 두 번째 요소보다 앞에 배치되고, 양수를 반환하면 뒤에 배치됩니다. 0을 반환하면 기존 순서가 그대로 유지됩니다. 따라서 first - second를 반환하면 오름차순 정렬이 되며, 내림차순으로 정렬하고 싶다면 second - first를 반환하도록 수정하면 됩니다.