늘 겸손하게

JavaScript - Array.sort() 메소드 compareFunction 본문

Programming/JavaScript

JavaScript - Array.sort() 메소드 compareFunction

besforyou999 2022. 7. 15. 14:55

자바스크립트의 Array.sort() 메소드의 매개변수로 compareFunction을 제공하여 원하는 방식으로 배열을 정렬시킬 수 있다. 이 compareFunction은 양수, 음수, 0을 반환해야하는데, 반환하는값에 따라 정렬 순서가 달라진다.

 

 

정리하자면, 

  • compareFunction 반환값이 양수인 경우 : 첫번째 인자 a, 두번째 인자 b의 위치가 바뀌어 정렬된다. ( b a 순으로 정렬된다 )
  • compareFunction 반환값이 음수인 경우 : 첫번째 인자 a, 두번째 인자 b의 위치가 바뀌지 않는다. ( a b 순으로 정렬된다 )
  • compareFunction 반환값이 0인 경우 : a b 위치가 바뀌지 않는다

예시

 

오름차순 정렬

 

const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b}); // [1, 5, 10, 25, 40, 100]

 

 

 

내림차순 정렬

 

const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a}); // [100, 40, 25, 10, 5, 1]

 

 

 

compareFunction의 반환값이 0이라면 아무일도 일어나지 않는다.