행복을 담는 블로그

[Javascript] sort( ) 메서드 정리하기 본문

FrontEnd/Javascript

[Javascript] sort( ) 메서드 정리하기

hyun0zin 2024. 6. 18. 15:03

오랜만에 알고리즘 문제 풀다가 그새 다 까먹어 버린 sort 함수 다시 정리하기.

✅ sort 문법

: 배열의 요소를 정렬할 때 사용하는 문법


const arr = [3,1,2];
array.sort(); // [1,2,3]
  • sort의 기본 특징
    1️⃣ 배열 그 자체가 변환
    2️⃣ 정렬된 배열을 반환
  • sort의 기본 원리
    : sort 비교 함수의 작동 방식▶️ sort 함수 내부에는 비교함수가 들어간다!



Array.prototype.sort()

array.sort([compareFunction])

매개변수

compareFuntion : optional

정렬 순서를 정의하는 함수. 생략하면 배열은 각 요소의 문자열 변환에 따라 유니코드 값에 따라 정렬

반환 값

정렬한 배열. 배열이 정렬되는 것. 복사 X

MDN 공식문서 참고


❓ sort() v.s sort((a,b) => a-b)

  • sort()
    : sort 함수 내부를 빈 함수로 두지 마라.
    → sort () 안을 비우면, 요소들을 문자열로 취급하여 정렬한다.
    유니코드 순서에 따라 9보다 80을 우선이라고 생각하여 예상하지 못한 정렬이 나오기도 함.

  • sort((a,b) => a-b)
    : 비교 함수를 통해 a와 b 사이의 값을 비교하여 오름차순, 내림차순의 순서에 맞게 정렬함.



sort( ) 메서드의 표현 방법

//표현 1(function 사용)
arr.sort(function(a,b){
     return a-b; //ascending 오름차순 정렬
     return b-a; //descending 내림차순 정렬
 });

// 표현 2(화살표 함수)
 arr.sort((a,b)=> {
     return a-b; //ascending 오름차순 정렬
     return b-a; //descending 내림차순 정렬
 });

// 표현 3 (한 줄로 표현)
 arr.sort((a,b) => a-b); //ascending 오름차순 정렬
 arr.sort((a,b) => b-a); //descending 내림차순 정렬