sort 함수는 원본 배열을 직접 변경하며, 정렬된 배열을 반환한다.
기본 사용법은 아래와 같다
1. array.sort( )
2. array.sort( 비교함수 )
배열의 요소를 정렬하고, 기본적으로 요소를 문자열로 변환한 후 유니코드 순서로 정렬한다.
이 말은 숫자비교가 제대로 안된다는 뜻이다
const numbers = [10, 1, 21];
numbers.sort();
console.log(numbers); // 출력: [1, 10, 21]
1. 배열 안의 숫자 비교
위 예에서 본 것처럼 숫자 비교를 할 시, 항상 비교함수를 넣어줘야 한다.
숫자배열.sort((a, b) => a - b); // 오름차순
숫자배열.sort((a, b) => b - a); // 내림차순
10 - 1 = 9 이므로 양수이므로 [1,10 ] 순으로 정렬하고
10 - 21 = -11 음수이므로 21 이 더 크다고 판단하여 정렬은 하지 않고 그대로 둔다 그래서 [1, 10 ,21 ] 의 순으로 배열이 정렬된다
두 수의 차가 0 이거나 Nan 일 경우는 같다고 판단하여 그대로 두고 다음 index 로 넘어가게 된다.
2. 객체 배열 안의 속성 숫자 비교
객체배열.sort((a, b) => a.속성 - b.속성);
const items = [
{ name: 'Apple', price: 5 },
{ name: 'Banana', price: 2 },
{ name: 'Cherry', price: 7 }
];
items.sort((a, b) => a.price - b.price);
console.log(items);
// 출력:
[
{ name: 'Banana', price: 2 },
{ name: 'Apple', price: 5 },
{ name: 'Cherry', price: 7 }
]
'JavaScript > methods' 카테고리의 다른 글
[JavaScript] for of 반복문에서 배열의 idx 값 가져오기 entries() (0) | 2024.08.29 |
---|---|
[JavaScript] Array.from() (0) | 2024.08.26 |
[JavaScript] Object.keys, Object.values, Object. entries, Object.fromEntries (0) | 2024.08.25 |
[JavaScript] with 사용법 Array.prototype.with() (0) | 2024.08.25 |
[JavaScript] Array.prototype.includes() (0) | 2023.04.02 |