Trick or True

[JavaScript] sort() 함수로 정렬하기 본문

개발 공부

[JavaScript] sort() 함수로 정렬하기

lee_99 2023. 4. 5. 13:02

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