sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환.
기본 정렬순서는 문자열의 유니코드 코드 포인트를 따름.
arr.sort([compareFunction])
compareFunction - 옵션
정렬 순서를 정의하는 함수. 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬됩니다.
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]
array1의 배열이 [1,100000,21,30,4]인 이유는
숫자정렬에서 100000과 21은 21이 원래 앞서지만 이 숫자들은 문자열로 변환되기때문에 100000은 21 앞입니다.
배열을 오름차순, 내림차순으로 정렬하고 싶을 때
compareFunction(a, b)를 작성합니다.
- compareFunction(a, b)이 0보다 작은경우 a를 b보다 작다고 판단해 a를 b앞으로 변경합니다.
- compareFunction(a, b)이 0과 같은경우 a와 b가 같다고 판단합니다.
- compareFunction(a, b)이 0보다 큰경우 a를 b보다 크다고 판단해 b를 a앞으로 변경합니다.
문자열을 비교할 경우
function compareFunction(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
숫자를 비교할 경우
function compareNumbers(a, b) { //오름차순
return a - b;
}
function compareNumbers(a, b) { //내림차순
return b - a;
}
var numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
'언어 정리 > JavaScript' 카테고리의 다른 글
Number.isInteger() (0) | 2022.11.12 |
---|---|
String.prototype.repeat() (0) | 2022.11.12 |
String.prototype.split() (0) | 2022.11.09 |
Array.prototype.reverse() (0) | 2022.11.09 |
Array.prototype.join() (0) | 2022.11.09 |