🔍 기본 개념: sort()란?

자바스크립트에서 배열을 정렬할 때는 Array.prototype.sort() 메서드를 사용한다. 기본적으로는 문자열 기준의 정렬을 수행하며, 숫자 정렬을 위해서는 비교 함수(compare function)를 명시해야 한다.


✨ 기본 정렬 예시

const arr = [10, 5, 3, 8];
arr.sort();
console.log(arr); // [10, 3, 5, 8] - 문자열 기준 정렬

기본 sort()는 배열 요소를 문자열로 변환한 뒤 유니코드 순서로 정렬하기 때문에 위처럼 예상과 다르게 정렬될 수 있다.


🔧 숫자 정렬을 위한 compareFunction

const arr = [10, 5, 3, 8];
arr.sort((a, b) => a - b); // 오름차순
console.log(arr); // [3, 5, 8, 10]

arr.sort((a, b) => b - a); // 내림차순
console.log(arr); // [10, 8, 5, 3]

비교 함수에서:

  • a - b → 오름차순
  • b - a → 내림차순

📌 문자열 정렬 (대소문자 구분 X)

const words = ["Banana", "apple", "Cherry"];
words.sort((a, b) => a.localeCompare(b));
console.log(words); // ["apple", "Banana", "Cherry"]

localeCompare()는 문자열을 현지화 기준으로 정렬할 때 유용하다.


🧠 객체 배열 정렬

const users = [
  { name: "Tom", age: 32 },
  { name: "Jane", age: 28 },
  { name: "Alex", age: 45 },
];

// 나이순 정렬
users.sort((a, b) => a.age - b.age);

특정 키 값을 기준으로 정렬할 때도 비교 함수를 활용하면 된다.


✅ 정리

  • sort()원본 배열을 변경한다 (주의!)
  • 숫자 정렬 시에는 반드시 compareFunction 사용
  • 문자열은 localeCompare()로 정렬 안정성 확보
  • 객체 정렬도 비교 함수로 유연하게 처리 가능