Trick or True
[JavaScript] sort() 함수로 정렬하기 본문
sort()란?
- 자바스크립트의 내장 함수. 배열의 요소를 정렬하는 데 사용한다.
- 최악의 경우 O(NlogN)의 시간복잡도를 가진다.
- 비교 함수(compare function)를 사용하지 않으면, 유니코드 순으로 정렬된다.
정렬 기준
- 반환 값이 0보다 작은 경우 : a가 앞에 위치한다.
- 반환 값이 0보다 큰 경우 : b가 앞에 위치한다.
- 반환 값이 0인 경우 : a와 b의 순서를 변경하지 않는다.
1-1. 정수 오름차순 정렬
function compare(a, b) {
if (a < b) return -1;
else if (a > b) return 1;
else return 0;
}
arr.sort(compare);
1-2. 정수 오름차순 짧은 버전
function compare(a, b) {
return a - b;
}
arr.sort(compare);
1-3 정수 오름차순 가장 짧은 버전
arr.sort((a, b) => a - b)
2. 정수 내림차순 정렬
function compare(a, b) {
return b - a;
}
arr.sort(compare);
3. 문자열 오름차순 정렬
arr.sort();
sort()는 기본적으로 유니코드 순으로 정렬되기 때문에, 따로 비교 함수를 적용하지 않으면 자동적으로 오름차순 정렬된다.
4. 문자열 내림차순 정렬
function compare(a, b) {
if (a > b) return -1;
else if (a < b) return 1;
else return 0;
}
arr.sort(compare);
5. 대소문자를 구분하지 않는 문자열 오름차순 정렬
function compare(a, b) {
let upperCaseA = a.toUpperCase();
let upperCaseB = b.toUpperCase();
if (upperCaseA < upperCaseB) return -1;
else if (upperCaseA > upperCaseB) return 1;
else return 0;
}
arr.sort(compare);
6. 대소문자를 구분하지 않는 문자열 내림차순 정렬
function compare(a, b) {
let upperCaseA = a.toUpperCase();
let upperCaseB = b.toUpperCase();
if (upperCaseA > upperCaseB) return -1;
else if (upperCaseA < upperCaseB) return 1;
else return 0;
}
arr.sort(compare);'개발 공부' 카테고리의 다른 글
| [JavaScript]클래스와 생성자 함수의 차이점 (0) | 2023.09.11 |
|---|---|
| Node.js (0) | 2023.09.04 |
| [자료구조]이진 트리(Binary Tree) (0) | 2023.04.04 |
| 문(statement)과 표현식(expression) (1) | 2023.03.27 |
| Block과 Inline의 차이 (0) | 2023.03.24 |
Comments