Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Sentry
- oh-my-zsh
- angular5
- NVM
- ChangeDetectorRef
- 변화감지
- code .
- fromEvent
- VSCode
- angular
- border-width
- 자바스크립개념
- getElementsByClassName
- typescript
- 테두리굵기
- hashchange
- error
- aab 배포
- ion-range
- zsh
- Git
- JavaScript
- Visual Studio Code
- IONIC3
- Ionic
- sealize
- change detection
- rxjs
- php
- 이미지바꾸기
Archives
- Today
- Total
hsunny study blog
sort()를 이용한 정렬 본문
정렬하기
javascript에서는 배열을 정렬할 수 있는 자체 함수를 제공합니다.
Array.prototype.sort()
arr.sort([compareFunction])
sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다. 문서보기
매개변수
compareFunction (Optional)
정렬 순서를 정의하는 함수. 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬됩니다.
반환 값
정렬한 배열. 원 배열이 정렬되는 것에 유의하세요. 복사본이 만들어지는 것이 아닙니다.
문자열의 유니코드 코드값에 따라 소팅하기 때문에
문자는 원하는 대로 결과를 얻을 수 있지만, 숫자는 원하는대로 결과를 얻을 수 없습니다.
1
2
3
4
5
6
7
8
9
10
|
let months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
let array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
//*원하는 소팅 결과 [1, 3, 21, 39, 100000]
|
cs |
숫자를 제대로 소팅하기 위해서 compareFunction을 넘겨줍니다. compareFunction이 제공되면 배열 요소는 compare함수의 반환 값에 따라 정렬됩니다. 문서보기
1
2
3
4
5
6
7
8
9
10
11
12
|
function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
|
cs |
클로저 함수로도 사용 가능합니다.
예제
1
2
3
4
5
|
let array1 = [1, 30, 4, 21, 100000];
array1.sort(function(a, b) { // 오름차순
return a - b;
})
//output : [1,4, 21, 30 ,100000]
|
cs |
개선하기
_map_ 을 이용한 정렬
compareFunction이 복잡해지고, 정렬할 요소가 많아질 경우, map을 사용한 정렬을 고려해보는 것이 좋습니다. 이 방법은 임시 배열을 하나 만들어서 여기에 실제 정렬에 사용할 값만을 뽑아서 넣어서 이를 정렬하고, 그 결과를 이용해서 실제 정렬을 하는 것입니다.
'programming > javascript' 카테고리의 다른 글
자바스크립트는 비동기를 왜 사용할까? (0) | 2019.06.25 |
---|---|
querySelector vs querySelectorAll vs getElementsByClassName (0) | 2019.06.25 |
배열 중복 요소 제거 (0) | 2019.06.17 |
[TypeScript] setInterval() 사용하기 (0) | 2018.09.11 |
Ajax (0) | 2017.07.22 |