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 | 31 |
Tags
- 리액트
- 리스트 렌더링
- 프로그래머스 데브코스
- vue 지역 컴포넌트
- 프로그래머스 프론트엔드 데브코스
- netlify redirect
- vuex map
- KDT 프로그래머스
- 프로그래머스 K_Digital Training
- 쌓임맥락
- SCSS extend
- KDT 프로그래머스 데브코스 프론트엔드
- postcss
- Vue
- SCSS import
- react next
- 다른컴퓨터에서 git사용
- flex
- 이벤트 수식어
- 고양이 사진 검색기
- nextjs사용법
- vue mixin
- intersection opserver
- vue 이벤트 수신
- Spacer
- git 같은계정 다른 컴퓨터
- SCSS use
- SCSS forward
- 프로그래머스 데브코스 프론트엔드
- 폼 입력 바인딩
Archives
- Today
- Total
혼자 적어보는 노트
[Javascript] 배열 정렬하기 sort() / 오름차순, 내림차순 본문
sort() 함수
Javascript에서 배열을 정렬하기 위해 sort()를 사용한다.
arr.sort([compareFunction])
compareFuction
이 값이 생략된다면 요소들을 문자열로 변환 유니코드 순서대로 문자열을 비교하여 정렬.
*숫자또한 문자열로 정렬되어 [1, 4, 6, 10, 30] 입력시 [1, 10, 30, 4, 5, 6] 이렇게 앞글자대로 정렬된다.
compareFunction(a, b)
- 이 반환값이 0보다 작은 경우 a가 b보다 앞으로 정렬된다.
- 리턴값이 0보다 클 경우 b가 a보다 앞으로 정렬된다.
- 만약 0을 리턴한다면 a와 b의 순서를 변경하지 않는다.
let arr = [1, 4, 6, 10, 30];
arr.sort((a,b)=> a-b);
console.log(arr) // [1, 4, 6, 10, 30]
예를들어 a는 비교하는 값 1이고 b는 그 다음 비교값 4이고
a - b (1 - 4) = -3 이 되므로 리턴값이 0보다 작기 때문에 a(1)이 b(4)보다 앞으로 정렬된다고 볼 수 있다.
이런 비교과정을 통해 전체를 정렬한다.
arr.sort(function(a, b) {
if(a > b) return 1; //b가 a보다 앞으로 정렬
if(a === b) return 0; //a와 b의 순서변경 x
if(a < b) return -1; //a가 b보다 앞으로 정렬
});
이와 같이 사용 가능하다.
sort() 함수를 이용한 오름차순 정렬
let arr = [1, 4, 6, 10, 30];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr)
// [1, 4, 6, 10, 30]
sort() 함수를 이용한 내림차순 정렬
let arr = [1, 4, 6, 10, 30];
arr.sort(function(a, b) {
if(a < b) return 1;
if(a > b) return -1;
if(a === b) return 0;
});
//arr.sort((a,b)=>b-a)로 축약 가능
console.log(arr)
//[30, 10, 6, 4, 1]
'Javascript' 카테고리의 다른 글
[Javascript] fetch (0) | 2021.10.25 |
---|---|
[Javascript] 메소드와 this (0) | 2021.10.22 |
[javascript] 심리테스트 만들기 - 3 (0) | 2021.10.14 |
[Javascript] 자릿 수끼리 더하는 법 (0) | 2021.10.13 |
[javascript] 심리테스트 만들기 - 2 (0) | 2021.10.11 |
Comments