자바스크립트 배열 정렬(Sorting)

자바스크립트에서 배열을 정렬하는 것은 매우 유용합니다. 정렬은 데이터를 특정한 순서로 나열하는 과정을 말하며, 배열 요소들을 크기 순이나 알파벳순으로 정렬하여 원하는 방식으로 데이터를 정리할 수 있습니다.

자바스크립트에서는 sort() 메소드를 사용하여 배열을 정렬할 수 있습니다. 이 메소드는 기본적으로 사전식 순서로 정렬하며, 배열의 요소들을 문자열 형태로 변환하여 비교합니다.

아래는 sort() 메소드를 사용하여 숫자 배열과 문자열 배열을 정렬하는 예제입니다.

숫자 배열 정렬

let numbers = [4, 2, 7, 1, 9, 5];
numbers.sort();
console.log(numbers); // 출력: [1, 2, 4, 5, 7, 9]

위의 예제에서 sort() 메소드를 호출하면 numbers 배열이 [1, 2, 4, 5, 7, 9]로 정렬됩니다. 기본적으로 sort() 메소드는 오름차순으로 정렬합니다.

문자열 배열 정렬

let fruits = ["banana", "apple", "orange", "grape"];
fruits.sort();
console.log(fruits); // 출력: ["apple", "banana", "grape", "orange"]

위의 예제에서는 fruits 배열이 [“apple”, “banana”, “grape”, “orange”]로 정렬됩니다. 문자열의 경우에도 알파벳순으로 정렬됩니다.

sort() 메소드는 기본적으로 오름차순으로 정렬되지만, 원하는 순서로 정렬할 수도 있습니다. sort() 메소드에는 정렬 순서를 지정하는 콜백 함수를 매개변수로 전달할 수 있습니다.

내림차순 정렬

let numbers = [4, 2, 7, 1, 9, 5];
numbers.sort(function (a, b) {
  return b - a;
});
console.log(numbers); // 출력: [9, 7, 5, 4, 2, 1]

위의 예제에서는 sort() 메소드에 콜백 함수를 전달하고, 콜백 함수에서 b - a를 반환하도록 설정했습니다. 이렇게 하면 숫자 배열이 내림차순으로 정렬됩니다.

사용자 정의 정렬 기준

let students = [
  { name: "Alice", age: 20 },
  { name: "Bob", age: 18 },
  { name: "Charlie", age: 22 }
];
students.sort(function (a, b) {
  return a.age - b.age;
});
console.log(students);
// 출력: [
//   { name: "Bob", age: 18 },
//   { name: "Alice", age: 20 },
//   { name: "Charlie", age: 22 }
// ]

위의 예제에서는 students 배열이 나이(age)를 기준으로 오름차순으로 정렬됩니다. 콜백 함수에서 a.age - b.age를 반환하여 정렬 순서를 결정합니다.

sort() 메소드를 사용하여 배열을 정렬할 때는 주의해야 할 점이 있습니다. 기본적으로 sort() 메소드는 원래 배열을 변경하며, 문자열 정렬은 유니코드 값을 기준으로 정렬됩니다. 따라서 원본 배열을 보존하고 싶은 경우, 정렬하기 전에 배열을 복사해야 합니다.

위의 예제들에서는 sort() 메소드를 사용하여 배열을 정렬하는 방법을 알아보았습니다. 이를 활용하여 원하는 방식으로 데이터를 정리하고 처리할 수 있습니다.

자바스크립트 배열 정렬은 데이터 정렬에 필수적인 기능이므로, 프로그래밍 공부를 하고 있는 경우 익숙해지면 도움이 될 것입니다.