배열에서 sort() 함수는 주어진 원본 배열 요소를 정렬합니다.
이 글은 코딩에브리바디(codingeverybody.kr)의 내용을 참조해 작성했습니다.
특징
- 기본 정렬은 각 요소를 문자열로 변환한 뒤 유니코드 코드 포인트 값의 정렬 순서를 따릅니다.
- 필요에 따라 콜백 함수를 전달하여 정렬 기준을 지정할 수 있습니다.
- 이 함수는 주어진 원본 배열을 직접 수정하며, 새로운 배열을 반환하지 않습니다.
기본 예제
/* 기본 정렬: 문자열 배열을 유니코드 코드 포인트 순서로 정렬하는 예제 */
const enStrings = ["d", "b", "c", "a"];
enStrings.sort();
console.log(enStrings); // ["a", "b", "c", "d"]
/* 콜백 함수를 사용해 숫자의 크기 기준으로 오름차순 정렬하는 예제 */
const numbers = [1, 4, 1000, 10, 31];
function compareNumbers(a, b) {
return a - b;
}
numbers.sort(compareNumbers);
console.log(numbers); // [1, 4, 10, 31, 1000]
구문
arr.sort();
arr.sort(compareFunction);
반환 값
정렬한 배열을 반환합니다. 반환 값은 변경된 원본 배열 자체입니다. 새로운 배열을 반환하지 않습니다.
콜백 함수(compareFunction) 설명
/**
* 콜백 함수
*
* @param a 비교할 첫 번째 요소입니다.undefined가 될 수 없습니다.
* @param b 비교를 위한 두 번째 요소입니다. undefined가 될 수 없습니다.
*
* 콜백 함수는 기명 함수(사용자 정의 함수)나 익명 함수 등으로 사용할 수 있습니다.
* (당연히) 모든 콜백 함수는 화살표 함수로 사용할 수 있습니다.
*/
compareFunction(a, b) {
// a와 b를 비교할 로직: 비교 결과를 반환해야 합니다.
}
- 반환 값이 0보다 작으면 첫 번째 인수를 두 번째 인수보다 앞에 위치시킵니다.
- 반환 값이 0이면 위치를 변경하지 않습니다.
- 반환 값이 0보다 크면 첫 번째 인수를 두 번째 인수보다 뒤에 위치시킵니다.
const numbers = [1, 4, 1000, 10, 31];
function compareNumbers(a, b) {
return a - b;
}
numbers.sort(compareNumbers);
console.log(numbers); // 출력: [1, 4, 10, 31, 1000]
또 다른 출처 정보
https://codingeverybody.jp/javascript-array-sort-function/
JavaScript 配列 sort()関数:元の配列の要素を並び替える - codingEverybody
codingEverybodyは、すべての人々のためのプログラミング学習書です。技術的に信頼できる情報を提供するために、常に努めています。
codingeverybody.jp
https://coding.courses/javascript-array-sort-function/
JavaScript Array sort() Function – Sorting Original Array Elements - codingCourses
The sort() function for arrays returns the original array after sorting its elements; by default, it sorts according to the Unicode code point order of strings, and a custom sorting criteria can be specified through a callback function.
coding.courses