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

자바스크립트 sort() 메서드 완벽 가이드 – 배열 정렬 방법과 실전 예제

자바스크립트 sort() 메서드란?

자바스크립트의 sort() 메서드는 배열의 요소를 정렬할 때 사용하는 대표적인 배열 메서드입니다. 정렬 기준은 알파벳순, 숫자순으로 지정할 수 있으며, 오름차순과 내림차순 모두 손쉽게 구현할 수 있습니다.

기본적으로 sort()는 배열 요소를 문자열로 변환한 뒤 유니코드 순서에 따라 정렬한다는 점을 기억해 두세요. 이 특성 때문에 숫자 배열을 정렬할 때는 비교 함수(compare function)를 함께 사용하는 것이 좋습니다.

예제 코드

다음은 sort() 메서드를 활용한 전체 예제입니다. 버튼을 클릭하면 정렬되지 않은 배열이 정렬되어 화면에 표시됩니다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>JavaScript Sort() 메서드</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .sample,
   .result {
      font-size: 18px;
      font-weight: 500;
      color: red;
   }
   .result {
      color: rebeccapurple;
   }
</style>
</head>
<body>
<h1>JavaScript Sort() 메서드</h1>
<div class="sample"></div>
<div class="result"></div>
<button class="Btn">클릭하세요</button>
<h3>
위 버튼을 클릭하면 배열이 정렬됩니다
</h3>
<script>
   let sampleEle = document.querySelector(".sample");
   let resultEle = document.querySelector(".result");
   let arr = [9, 1, 4, 2, 99, 11, 22];
   sampleEle.innerHTML = "정렬 전 배열 = " + arr;
   document.querySelector(".Btn").addEventListener("click", () => {
      resultEle.innerHTML = "정렬 후 배열 = " + arr.sort();
   });
</script>
</body>
</html>

실행 결과

페이지를 처음 열면 아래와 같이 정렬되지 않은 원본 배열이 표시됩니다.

자바스크립트 sort() 메서드 완벽 가이드 – 배열 정렬 방법과 실전 예제

“클릭하세요” 버튼을 누르면 sort() 메서드가 실행되어 다음과 같이 정렬된 배열이 출력됩니다.

자바스크립트 sort() 메서드 완벽 가이드 – 배열 정렬 방법과 실전 예제

참고: 숫자 배열을 정렬할 때 주의할 점

앞서 언급했듯이 기본 sort()는 요소를 문자열로 취급하기 때문에, 위 예제에서도 [9, 1, 4, 2, 99, 11, 22][1, 11, 2, 22, 4, 9, 99]처럼 사전식 순서로 정렬됩니다. 숫자 크기 기준으로 정렬하려면 반드시 비교 함수를 인자로 전달해야 합니다.

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

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

비교 함수가 음수를 반환하면 첫 번째 요소가 앞으로, 양수를 반환하면 두 번째 요소가 앞으로 이동합니다. 이 규칙만 이해하면 객체 배열 정렬 등 훨씬 복잡한 정렬 로직도 자유롭게 구현할 수 있습니다.