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));챌린지
쉬움문자열의 array를 받아 동일한 문자열을 length 기준 ascending order로 정렬한 새 array를 반환하는 sortByLength function을 작성하세요. 두 문자열의 length가 같은 경우, alphabetically 순으로 정렬해야 합니다.
직접 해보기
function sortByLength(arr) {
return arr.sort((a, b) => {
// 여기에 코드를 작성하세요
})
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 & 흐름의 모든 레슨
직접 연습해 보세요: 온라인 JavaScript 컴파일러