sort() 함수?
정렬 순서를 정의하는 함수.
이 값이 생략되면, 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬됩니다.
- 리턴하는 값이 -1인경우, a가 b보다 앞에 오도록 정렬하고,
- 리턴하는 값이 1인 경우, b가 a보다 앞에 오도록 정렬합니다.
- 만약 0을 리턴하면, a와 b의 순서를 변경하지 않습니다.
배열의 숫자들을 유니코드 순서가 아닌, 숫자 크기 순서대로 정렬하기 위해서
sort() 함수의 파라미터로 함수를 정의해야한다.
두 숫자의 차가 양수값이냐, 음수값이냐를 이용하여
두 숫자의 차이를 리턴하는 함수를 sort() 함수의 파라미터로 전달
숫자를 오름차순으로 정렬하는 예제를 위와 같이 단순화
배열의 오름 차순
방법 1)
arr.sort(function(a, b) {
if(a > b) return 1;
if(a === b) return 0;
if(a < b) return -1;
});
방법2)
arr.sort(function(a, b) {
return a - b;
});
배열의 내림 차순
방법 1)
arr.sort(function(a, b) {
if(a < b) return 1;
if(a === b) return 0;
if(a > b) return -1;
});
방법2)
arr.sort(function(a, b) {
return b - a;
});
sort() 함수로 객체 정렬하기
const arr = [
{name: 'banana', price: 3000},
{name: 'apple', price: 1000},
{name: 'orange', price: 500}
];
arr.sort(function(a, b) {
return a.price - b.price;
});
'Front-end > JavaScript' 카테고리의 다른 글
CORB란? (0) | 2022.12.10 |
---|---|
[JavaScript] reduce() 함수 (0) | 2022.01.30 |
[JavaScript] 자바스크립트 동작원리 (Stack, Queue, 동기와 비동기) (0) | 2022.01.18 |
[JavaScript] 객체지향 Class 문법 & prototype (0) | 2022.01.18 |
[JavaScript] Deep copy vs Shallow copy (0) | 2021.12.05 |