Menu
Coddy logo textTech

Sort 메서드

Coddy JavaScript 여정의 논리 & 흐름 섹션에 포함된 레슨. 65개 중 57번째.

sort() 메서드를 사용하면 배열의 요소를 제자리에서 정렬하고 정렬된 배열을 반환할 수 있습니다. 기본적으로 요소들을 알파벳순 및 오름차순(ascending)의 문자열로 정렬합니다.

기본 구문은 다음과 같습니다:

array.sort([compareFunction])

compare 함수를 사용하지 않은 예시:

const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']

경고: 비교 함수(compare function)가 없으면 숫자들이 예상대로 정렬되지 않습니다:

const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (잘못된 숫자 정렬)

숫자를 올바르게 정렬하거나 사용자 정의 정렬을 구현하려면 compare 함수를 사용해야 합니다.

비교 함수는 다음을 반환해야 합니다:

  • a가 b보다 앞에 와야 하는 경우 음수
  • b가 a보다 앞에 와야 하는 경우 양수
  • 두 값이 같은 경우 0

다음은 비교 함수를 사용하여 `numbers`를 `sort`하는 방법입니다:

// 오름차순
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]
// 내림차순
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]

객체를 정렬하는 또 다른 예시입니다:

const people = [
    { name: 'John', age: 30 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 35 }
];

// 나이순으로 정렬 (오름차순)
people.sort((a, b) => a.age - b.age);
// 이름으로 정렬 (알파벳순으로 localeCompare() 사용)
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

챌린지

쉬움

문자열의 array를 받아 동일한 문자열을 length 기준 ascending order로 정렬한 새 array를 반환하는 sortByLength function을 작성하세요. 두 문자열의 length가 같은 경우, alphabetically 순으로 정렬해야 합니다.

직접 해보기

function sortByLength(arr) {
    return arr.sort((a, b) => {
        // 여기에 코드를 작성하세요
    })
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨

직접 연습해 보세요: 온라인 JavaScript 컴파일러