sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다.
기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다
# 주의 : sort를 사용하면 복사본이 만들어지는 것이 아니고 원 배열이 재 정렬되는 것이니 주의할 것
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
이렇게 함수를 따로 적어 두지 않으면 유니코드 코드 포인트에 따라 정렬이 되기때문에
특정한 순서를 원하면 함수를 사용 해야한다.
예를 들어 숫자를 오름차순으로 정렬하고 싶다면
const numbers = [4, 2, 5, 1, 3];
numbers.sort(function (a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
b - a 로 한다면 내림차순으로 정렬이 된다.
그런데 궁금하다
" - " 만 했는데 어떻게 정렬이 될까 ?
기본적으로 sort의 구문은
arr.sort([compareFunction]) 이다.
즉 배열을 정렬하는 함수이다.
매개변수는 compareFunction인데
이 함수가 무엇이냐 ?
이름은 다른 것으로 바꿔도 된다.
compareFunction(a, b) 이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬 즉 a가 먼저오고 b가 뒤로간다
compareFunction(a, b) 이 0을 반환하면 a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬한다.
compareFunction(a, b) 이 0보다 큰 경우, b를 a보다 낮은 인덱스로 색인합니다. 즉 b가 먼저오고 그다음 a가 온다.
주의 : compareFunction(a, b) 이 요소 a와 b의 특정 쌍이 두 개의 인수로 주어질 때 항상 동일한 값을 반환해야한다.
728x90
'Javascript > 개념' 카테고리의 다른 글
[JS - 개념] 정규표현식 (0) | 2022.06.11 |
---|---|
[JS-개념] padEnd() (0) | 2022.06.11 |
[JS 기본 개념] reduce() (배열의 합 구하기) <공사중> (0) | 2022.03.29 |
자바스크립트 기초 #2 (0) | 2021.01.02 |
자바스크립트 기초 #1 (0) | 2021.01.02 |