자바스크립트 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()는 요소를 문자열로 취급하기 때문에, 위 예제에서도 [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);
비교 함수가 음수를 반환하면 첫 번째 요소가 앞으로, 양수를 반환하면 두 번째 요소가 앞으로 이동합니다. 이 규칙만 이해하면 객체 배열 정렬 등 훨씬 복잡한 정렬 로직도 자유롭게 구현할 수 있습니다.