티스토리 뷰
반응형
배열 안의 요소를 정렬하기 위해서는 어떤 함수를 사용해야 할까? 자바스크립트 배열 메서드 중에 sort()를 사용하면 된다. sort()에 대해 자세히 알아보자.
1. sort() 기본 형식
array.sort(정렬순서function) |
sort()의 매개변수 자리에는 정렬 순서를 정의하는 함수가 온다. 생략할 경우 각 요소를 문자열로 변환하고 그 문자열의 유니코드(ASCII)에 따라 오름차순으로 정렬된다.
sort()는 정렬이 수정된 기존 배열을 반환하기 때문에 배열이 복사되는 것이 아님에 주의하여야 한다.
2. sort() 사용법
문자 정렬
1
2
3
4
|
const fruit = ['grape', 'apple', 'melon', 'banana'];
// 유니코드에 따라 오름차순 정렬
console.log(fruit.sort()); // ['apple', 'banana', 'grape', 'melon']
|
cs |
숫자 정렬
문자의 경우 정렬순서를 정하지 않으면, 알파벳에 따라 오름차순으로 잘 정렬되는 반면 숫자는 생각하는 결과대로 정렬되지 않는다. 따라서 정해진 함수를 사용해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
const arr = [2, 10, 7, 11, 5];
// 문자열 유니코드에 따른 순서
arr.sort()
console.log(arr); // [10, 11, 2, 5, 7]
// 오름차순
arr.sort(function (a, b) {
return a - b;
})
console.log(arr); // [2, 5, 7, 10, 11]
// 내림차순
arr.sort(function (a, b) {
return b - a;
})
console.log(arr); // [11, 10, 7, 5, 2]
|
cs |
화살표 함수로 간단하게 표현할 수 있다.
1
2
3
4
5
6
7
8
9
10
|
const arr = [2, 10, 7, 11, 5];
// 문자열 유니코드에 따른 순서
console.log(arr.sort()); // [10, 11, 2, 5, 7]
// 오름차순
console.log(arr.sort((a, b) => a - b)); // [2, 5, 7, 10, 11]
// 내림차순
console.log(arr.sort((a, b) => b - a)); // [11, 10, 7, 5, 2]
|
cs |
반응형
'JavaScript' 카테고리의 다른 글
[Javascript] 물음표(?) / 삼항 연산자 / 조건 연산자 / 조건문 (0) | 2021.10.11 |
---|---|
[Javascript] for 문에서 var 대신 let 사용하는 이유 + setTimeout() (2) | 2021.10.09 |
[Javascript] slice() 사용법, splice()와 비교 (0) | 2021.10.07 |
[Javascript] Math.random() 난수 생성, 랜덤 숫자/번호 추출 (0) | 2021.10.07 |
[Javascript] 배열 매서드 fill() (0) | 2021.10.06 |