혼자 적어보는 노트

[Javascript] 배열 정렬하기 sort() / 오름차순, 내림차순 본문

Javascript

[Javascript] 배열 정렬하기 sort() / 오름차순, 내림차순

jinist 2021. 10. 17. 01:00


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