일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준 2512번
- 백준 18310번
- 백준 16918번
- 그리디
- 다이나믹 프로그래밍
- SWEA 15612번
- 머신러닝과 딥러닝
- 백준 1331번
- MySQL
- 백준 3085번
- SQL
- HUFS 모각코 캠프
- javascript
- java_programming
- 모각코
- 백준 1253번
- ubuntu
- 백준 15787번
- 백준 17451번
- 자바
- 그래프
- 백준 1987
- 백준
- 명품자바
- AWS
- react
- 깃헙
- 알고리즘
- 다이나믹프로그래밍
- Python
Archives
- Today
- Total
차곡차곡
[JavaScript] 배열 정렬 본문
sort() 함수의 기본적 특징
- 기본적으로 오름차순 정렬한다.
- 요소를 문자열로 캐스팅하고 변환된 문자열을 비교하여 순서를 결정한다.
- 요소가 undefined인 경우, 문자열로 변환되지 않고 배열의 맨끝으로 정렬된다.
var numbers = [1, 10, 2, 20, 3, 30];
numbers.sort();
console.log(numbers); // [1,10,2,20,3,30]
문자열 10과 문자열 2를 비교했을 때, '1' < '2' 이므로 10이 2보다 앞에 정렬된다.
위 문제를 해결하기 위해선, sort 함수에 비교 함수를 파라미터에 넣어줘야 한다.
array.sort(compareFunction)
비교 함수(compareFunction)
1. 숫자 오름차순 정렬
var numbers = [1, 10, 2, 20, 3, 30];
numbers.sort(function compare(a, b) {
return a - b;
});
console.log(numbers); // [1,2,3,10,20,30]
// 간단하게
var numbers = [1, 10, 2, 20, 3, 30];
numbers.sort((a, b) => a - b)
console.log(numbers); // [1,2,3,10,20,30]
2. 숫자 내림차순 정렬
var numbers = [1, 10, 2, 20, 3, 30];
numbers.sort(function compare(a, b) {
return b - a;
});
console.log(numbers); // [30,20,10,3,2,1]
// 간단하게
var numbers = [1, 10, 2, 20, 3, 30];
numbers.sort((a, b) => b - a);
console.log(numbers); // [30,20,10,3,2,1]
3. 문자열 오름차순 정렬
var strArray = ["BA", "BB","AA", "AB", "CB", "CA"];
strArray.sort();
console.log(strArray); // ["AA","AB","BA","BB","CA","CB"]
4. 문자열 내림차순 정렬
var strArray = ["BA", "BB","AA", "AB", "CB", "CA"];
strArray.sort(function compare(a, b) {
return a == b ? 0 : a > b ? -1 : 1;
});
console.log(strArray); // ["CB","CA","BB","BA","AB","AA"]
// 간단하게
var strArray = ["BA", "BB","AA", "AB", "CB", "CA"];
strArray.sort((a, b) => a == b ? 0 : a > b ? -1 : 1);
console.log(strArray); // ["CB","CA","BB","BA","AB","AA"]
+ 대문자, 소문자 섞여있을 경우
var strArray = ["bA", "Bb","aa", "Ab", "cB", "ca"];
strArray.sort(function compare(a, b) {
let x = a.toUpperCase(),
y = b.toUpperCase();
return x == y ? 0 : x > y ? -1 : 1;
});
console.log(strArray); // ["cB","ca","Bb","bA","Ab","aa"]
참고
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] Node.js 온라인 컴파일러 (0) | 2023.05.13 |
---|---|
[JavaScript] for vs. forEach vs. map (0) | 2022.07.06 |
[JavaScript] ES6의 const와 let (0) | 2022.07.03 |
[JavaScript] JavaScript 기초 (0) | 2022.06.28 |
[JavaScript] 자바스크립트 중급 강좌 : 140분 완성 (1) (0) | 2022.05.30 |
Comments