항해99_6기_TIL
항해99 👩💻28일차 TIL /WIL
merrytang
2022. 4. 3. 18:38
🎉오늘의 한 일🎉
1. 알고리즘문제 36번까지 풀이하고 스터디에 인증하였다.
🐣배운 점🐣
sort() 메서드
Javascript에서 배열을 정렬하기 위해서는 sort() 함수를 사용한다.
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
숫자 배열에서 sort() 함수를 사용했지만 우리의 기대와 다르게 정렬되었다.
이렇듯 compareFunction함수를 사용해주지 않으면 배열의 요소들은 문자열로 취급되어 유니코드 값 순서대로 정렬되어버린다.
arr.sort([compareFunction])
compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬된다.
a와b가 비교되는 두 요소라면,
- 이 함수가 리턴하는 값이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬한다. 즉, a가 먼저온다.
- 이 함수가 리턴하는 값이 0보다 큰 경우, b를 a보다 낮은 인덱스로 소트한다.
- 이 함수가 리턴하는 값이 0을 반환하면 a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬한다.
compare 함수의 형식
function compare(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
// a must be equal to b
return 0;
}
숫자로 이루어진 배열을 정렬하는 방법
1) 오름차순
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b; //오름차순 정렬
});
console.log(numbers);
// [1, 2, 3, 4, 5]
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
if(a > b) return 1;
if(a === b) return 0;
if(a < b) return -1;
});
document.writeln(arr + '<br>'); // [1, 2, 3, 10]
2) 내림차순
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
return b - a; //내림차순 정렬
});
document.writeln(arr + '<br>'); // [10, 3, 2, 1]