JavaScript 배열 정렬 방법
JavaScript에서 배열을 정렬하는 방식은 다양한 기준에 따라 정렬할 수 있게 해주며, 이는 데이터 처리 및 사용자 인터페이스 구성 시 매우 유용합니다. 이번 글에서는 배열 정렬에 대해 자세히 살펴보겠습니다. 배열을 올바르게 정렬하기 위해 필요한 기본 지식과 함께 활용 사례를 소개하겠습니다.

1. 기본적인 sort() 메서드 사용법
JavaScript에서 배열을 정렬하기 위해 가장 널리 사용되는 메서드는 sort()
입니다. 이 메서드는 기본적으로 배열의 요소를 문자열로 변환하여 유니코드 순서에 따라 정렬합니다. 즉, 배열의 각 요소는 알파벳 순서대로 정렬된다는 의미입니다. 아래의 예시를 살펴보겠습니다:
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
console.log(fruits); // 출력: ["Apple", "Banana", "Mango", "Orange"]
2. 숫자 배열 정렬
숫자 배열을 정렬할 때 sort()
메서드를 그대로 사용하게 되면, 예상과는 다른 결과가 나올 수 있습니다. 이는 숫자들이 문자열로 변환되어 정렬되기 때문입니다.
let numbers = [10, 2, 30, 21];
numbers.sort();
console.log(numbers); // 출력: [10, 2, 21, 30]
숫자 배열을 올바르게 정렬하기 위해서는 비교 함수를 사용해야 합니다.
numbers.sort((a, b) => a - b);
console.log(numbers); // 출력: [2, 10, 21, 30]
3. 사용자 정의 정렬 기준 적용
정렬 방식을 사용자 정의하기 위해서는 비교 함수를 작성할 수 있습니다. 이 비교 함수는 두 개의 인수를 받아 정렬 기준을 결정합니다. 다음은 오름차순과 내림차순을 정렬하는 방식을 보여주는 예시입니다.
- 오름차순:
arr.sort((a, b) => a - b);
- 내림차순:
arr.sort((a, b) => b - a);
4. 문자열 배열 정렬
문자열로 이루어진 배열은 기본적으로 알파벳 순서로 정렬됩니다. 하지만 대소문자 구분 없이 정렬하고 싶다면 toLowerCase()
또는 toUpperCase()
메서드를 활용할 수 있습니다. 아래의 예제를 참고해 주세요.
let mixedCaseStrings = ["apple", "Banana", "grape"];
mixedCaseStrings.sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()));
console.log(mixedCaseStrings); // 출력: ["apple", "Banana", "grape"]

5. 객체 배열 정렬
배열의 각 요소가 객체인 경우, 특정 속성을 기준으로 정렬할 수 있습니다. 예를 들어, 여러 사람의 나이를 기준으로 오름차순 정렬하는 방법은 다음과 같습니다.
let people = [{ name: "John", age: 30 }, { name: "Alice", age: 25 }, { name: "Bob", age: 35 }];
people.sort((a, b) => a.age - b.age);
console.log(people); // 출력: [{ name: "Alice", age: 25 }, { name: "John", age: 30 }, { name: "Bob", age: 35 }]
6. 날짜 배열 정렬하기
날짜를 정렬할 때는 new Date()
를 활용하여 정렬할 수 있습니다. 이 방법을 사용하면 날짜 문자열을 잘 정렬할 수 있습니다.
let dates = ["2023-01-15", "2022-05-19", "2023-06-27"];
dates.sort((a, b) => new Date(a) - new Date(b));
console.log(dates); // 출력: ["2022-05-19", "2023-01-15", "2023-06-27"]
7. 배열 랜덤 정렬하기
배열의 요소를 무작위로 섞고 싶을 때는 셔플 알고리즘(Fisher-Yates)을 사용할 수 있습니다. 이 알고리즘은 O(n) 시간 복잡도로 배열을 뒤섞는데 매우 효율적입니다.
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}

정리
JavaScript에서 배열을 정렬하는 방법은 다양하며, sort()
메서드를 통해 쉽게 구현할 수 있습니다. 문자열, 숫자, 객체 등의 여러 유형의 배열을 정렬할 수 있고, 사용자 정의 정렬 기준을 적용하여 원하는 순서로 배열을 재편성하는 것이 가능합니다. 이러한 기법들은 데이터 처리 및 사용자 반응에 대한 최적화를 위해 매우 유용하게 활용될 수 있습니다.
정렬 방식의 이해와 활용은 프로그래밍 과정에서 자주 필요하므로, 위의 예시들을 통해 연습해 보시길 추천드립니다.
자주 찾으시는 질문 FAQ
JavaScript에서 배열을 어떻게 정렬하나요?
JavaScript에서는 sort()
메서드를 사용하여 배열의 요소를 정렬합니다. 이 메서드는 기본적으로 문자열 형식으로 변환 후 유니코드 순서에 따라 배열을 배열에 따라 나열합니다.
숫자 배열을 정렬할 때 주의할 점은 무엇인가요?
숫자 배열을 정렬할 때는 sort()
를 직접 사용하면 예상치 못한 결과가 나올 수 있습니다. 이를 방지하려면 비교 함수를 사용하여 올바르게 정렬해야 합니다.
문자열 배열을 정렬하는 방법은 무엇인가요?
문자열로 구성된 배열은 기본적으로 알파벳 순서로 정렬됩니다. 대소문자 구분 없이 정렬하고 싶다면 toLowerCase()
또는 toUpperCase()
메서드를 활용하면 됩니다.
객체 배열을 정렬할 수 있나요?
네, 배열의 각 요소가 객체일 경우 특정 속성을 기준으로 정렬할 수 있습니다. 예를 들어, 나이를 기준으로 오름차순으로 정렬하는 함수도 쉽게 작성할 수 있습니다.