자바스크립트 배열의 요소를 특정 기준으로 정렬하기

자바스크립트에서 배열은 많은 데이터를 효과적으로 관리하기 위한 중요한 자료 구조입니다. 때때로, 배열의 요소들을 특정한 기준에 따라 정렬해야 할 필요가 있을 수 있습니다. 이 글에서는 자바스크립트에서 배열의 요소를 정렬하는 방법을 다룰 것입니다.

1. sort() 메소드를 사용한 정렬

가장 간단한 방법으로, 자바스크립트의 Array 객체에는 sort() 메소드가 내장되어 있습니다. 이 메소드는 배열의 요소들을 기본 정렬 순서에 따라 정렬해줍니다. 기본 정렬 순서는 문자열의 Unicode 값을 기준으로 정렬됩니다.

const numbers = [5, 1, 3, 2, 4];
numbers.sort();
console.log(numbers); // [1, 2, 3, 4, 5]

위의 예제에서 sort() 메소드를 사용하여 numbers 배열을 정렬했습니다. 결과로 [1, 2, 3, 4, 5]가 출력됩니다.

2. 사용자 정의 정렬 기준으로 정렬하기

sort() 메소드는 기본적으로 Unicode 값을 기준으로 정렬하지만, 사용자 정의한 정렬 함수를 인자로 전달하여 원하는 정렬 기준에 따라 배열을 정렬할 수 있습니다.

const students = [
  { name: 'Alice', age: 20 },
  { name: 'Bob', age: 18 },
  { name: 'Charlie', age: 25 }
];

students.sort((a, b) => a.age - b.age);

console.log(students);
// [
//   { name: 'Bob', age: 18 },
//   { name: 'Alice', age: 20 },
//   { name: 'Charlie', age: 25 }
// ]

위의 예제에서 students 배열은 각 요소로 객체를 가집니다. sort() 메소드의 인자로 사용된 화살표 함수는 a.age - b.age를 반환하는데, 이는 각 요소의 age 프로퍼티 값을 오름차순으로 정렬하기 위해 사용됩니다.

3. localeCompare() 메소드를 사용한 문자열 정렬

sort() 메소드는 기본적으로 문자열을 Unicode 값을 기준으로 정렬합니다. 하지만, 문자열을 특정 언어의 정렬 규칙에 따라 정렬하고 싶다면 localeCompare() 메소드를 사용할 수 있습니다.

const fruits = ['바나나', '사과', '포도', '딸기'];
fruits.sort((a, b) => a.localeCompare(b, 'ko-KR'));

console.log(fruits); // ['바나나', '딸기', '사과', '포도']

위의 예제에서 fruits 배열은 한글로 된 과일 이름을 요소로 가지고 있습니다. localeCompare() 메소드는 두 문자열을 비교하여 정렬 순서를 결정하는데, 두 번째 인자로 언어 태그를 전달하여 한글로 정렬 순서를 지정할 수 있습니다.

위의 방법들을 통해 자바스크립트 배열의 요소를 특정 기준에 따라 정렬할 수 있습니다. 정렬은 배열을 다양한 방식으로 활용하거나 필요에 맞게 데이터를 정렬할 때 유용한 기능입니다.