Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 숫자 정렬하기: sort() 메서드 활용법

JavaScript에서 배열을 정렬하려면 sort() 메서드를 사용합니다. 다만 주의할 점이 있습니다. sort()는 기본적으로 배열 요소를 문자열로 변환한 후 정렬하기 때문에, 숫자를 정렬할 때는 반드시 비교 함수(compare function)를 함께 전달해야 올바른 결과를 얻을 수 있습니다.

숫자 정렬 예제

아래 코드는 비교 함수를 사용하여 숫자 배열을 오름차순으로 정렬하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
   <body>
      <script>
         var arr = [75, 20, 90, 9, 49, 32, 69, 66];
         document.write("Initial Values: "+arr);
         
         function myFunction() {
            arr.sort(function(val1, val2){return val1 - val2});
            document.write("<br>Sorted Values: "+arr);
         }
         myFunction();
      </script>
   </body>
</html>

출력 결과

Initial Values: 75,20,90,9,49,32,69,66
Sorted Values: 9,20,32,49,66,69,75,90

비교 함수의 동작 원리

비교 함수는 두 개의 인자(val1, val2)를 받아 그 차이를 반환합니다.

  • 반환값이 음수이면 val1이 val2보다 앞에 위치합니다.
  • 반환값이 양수이면 val2가 val1보다 앞에 위치합니다.
  • 반환값이 0이면 두 요소의 순서가 유지됩니다.

내림차순으로 정렬하기

내림차순 정렬이 필요하다면 비교 함수에서 뺄셈 순서만 바꾸면 됩니다.

arr.sort(function(val1, val2){return val2 - val1});

또는 ES6의 화살표 함수를 사용하면 더욱 간결하게 작성할 수 있습니다.

arr.sort((a, b) => a - b); // 오름차순
arr.sort((a, b) => b - a); // 내림차순

이처럼 sort()에 적절한 비교 함수를 전달하면 숫자 배열을 정확하고 효율적으로 정렬할 수 있습니다.