JavaScript의 sort() 메소드는 배열의 요소를 정렬하는 데 사용됩니다. 이 메소드는 기본적으로 유니코드 코드 포인트에 따라 문자열로 변환 된 각 요소를 비교하여 배열을 정렬합니다.
sort() 메소드는 인자를 가질 수 있지만, 일반적으로는 비교 함수를 인자로 받습니다. 비교 함수는 두 개의 인자를 받아서, 정렬하고자 하는 두 요소를 비교하는 함수입니다. 비교 함수가 생략되면 기본적으로 문자열 비교에 따라 요소가 정렬됩니다.
예를 들어, 숫자 배열을 오름차순으로 정렬하려면 다음과 같이 비교 함수를 작성할 수 있습니다
const numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
반대로, 내림차순으로 정렬하려면 다음과 같이 비교 함수를 작성할 수 있습니다
const numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
numbers.sort((a, b) => b - a);
console.log(numbers); // [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
비교 함수를 사용하면 객체 배열을 속성 값을 기준으로 정렬할 수도 있습니다. 다음은 name 속성으로 객체 배열을 정렬하는 예입니다
const persons = [
{ name: 'Alice', age: 28 },
{ name: 'Bob', age: 23 },
{ name: 'Charlie', age: 32 },
];
persons.sort((a, b) => a.name.localeCompare(b.name));
console.log(persons); // [{ name: 'Alice', age: 28 }, { name: 'Bob', age: 23 }, { name: 'Charlie', age: 32 }]
localeCompare() 메소드는 지역화된 문자열 비교를 수행하며, 여기에서는 이름 속성의 알파벳순으로 정렬됩니다.