Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 사용자 정의 정렬 함수를 만드는 방법 완벽 가이드

JavaScript에서 사용자 정의 정렬 함수(custom sort function)를 정의하려면 배열의 첫 번째 값과 두 번째 값을 서로 비교하는 로직을 직접 작성해야 합니다.

정렬 함수의 기본 원리

사용자 정의 정렬 함수는 비교 결과에 따라 다음과 같은 값을 반환합니다.

  • 첫 번째 값이 두 번째 값보다 크면-1 반환
  • 첫 번째 값이 두 번째 값보다 작으면1 반환
  • 두 값이 같으면0 반환

위 방식대로 구현하면 데이터가 내림차순(descending order)으로 정렬됩니다. 반대로 오름차순(ascending order)으로 정렬하고 싶다면 반환값인 -11의 위치를 서로 바꿔주면 됩니다.

예제 코드

다음은 이름 배열을 내림차순으로 정렬하는 예제 코드입니다.

var name = ['David', 'Adam', 'John', 'Bob'];
name.sort(function (first, second) {
    if (first > second) {
        return -1;
    }
    if (first < second) {
        return 1;
    }
    return 0;
});
console.log(name)

프로그램 실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 아래 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo263.js라고 가정하겠습니다.

실행 결과

프로그램을 실행하면 콘솔에 다음과 같은 출력 결과가 표시됩니다.

PS C:\Users\Amit\javascript-code> node demo263.js
[ 'John', 'David', 'Bob', 'Adam' ]

출력 결과를 보면 알파벳 순서가 아닌 역알파벳 순(내림차순)으로 이름이 정렬된 것을 확인할 수 있습니다. 이처럼 sort() 메서드에 비교 함수를 직접 전달하면 문자열뿐만 아니라 숫자, 객체 배열 등 원하는 기준으로 자유롭게 정렬할 수 있습니다.