JavaScript 배열 정렬 이해하기 sort((a, b) => a - b)의 원리와 적용 방법
자바스크립트에서 배열의 요소를 정렬하는 일은 상당히 흔한 작업 중 하나입니다. 특히 숫자 배열을 오름차순 또는 내림차순으로 정렬할 때 .sort() 메소드를 사용하는데, 이때 정렬 로직을 결정하는 '비교 함수'에 대한 이해가 필요합니다. 여기서는 .sort((a, b) => a - b) 비교 함수가 어떻게 동작하는지 쉽게 설명해 드리겠습니다.
JavaScript 배열 정렬
1. .sort() 메소드의 기본 사용법
JavaScript의 .sort() 메소드는 배열의 요소들을 문자열로 변환한 후 유니코드 순서에 따라 정렬합니다. 이는 숫자 배열에는 적합하지 않은 방식이죠. 예를 들어, [10, 2, 1]을 정렬하면 ['1', '10', '2']가 되어 예상과 다르게 [1, 10, 2]로 정렬됩니다.
2. 비교 함수의 역할
.sort((a, b) => a - b)는 비교 함수로, 배열의 두 요소 a와 b의 대소 관계를 숫자로 반환해 정렬 순서를 결정합니다.
3. 오름차순 정렬의 원리
비교 함수 (a, b) => a - b의 반환 값에 따라 정렬이 결정됩니다.
- 1. 반환 값이 음수인 경우: a가 b보다 앞에 위치합니다.
- 2. 반환 값이 0인 경우: a와 b의 순서를 변경하지 않습니다.
- 3. 반환 값이 양수인 경우: b가 a보다 앞에 위치합니다.
간단히 말해, a가 b보다 작으면 두 요소의 위치를 그대로 두고, a가 b보다 크면 위치를 바꾸는 것입니다.
4. 예시를 통한 이해
예를 들어 배열 [3, 1, 2]가 있다고 해봅시다. .sort((a, b) => a - b)를 적용하면 다음과 같은 과정을 거치게 됩니다.
- 1. 3과 1을 비교: 3 - 1 = 2 (양수) → 1이 3보다 앞으로 갑니다.
- 2. 3과 2를 비교: 3 - 2 = 1 (양수) → 2가 3보다 앞으로 갑니다.
- 3. 1과 2를 비교: 1 - 2 = -1 (음수) → 위치를 바꾸지 않습니다.
최종적으로 [1, 2, 3]으로 오름차순 정렬됩니다.
끝으로
.sort((a, b) => a - b) 비교 함수는 배열을 숫자의 크기에 따라 오름차순으로 정렬할 때 사용되며, 매우 직관적이고 실용적인 방법입니다. 이 글을 통해 배열 정렬의 기본적인 이해를 돕고, 여러분의 자바스크립트 프로그래밍 실력 향상에 도움이 되었기를 바랍니다.
▼ 30초 더 투자하면 얻게되는 정보 ▼
'Programming & Platform > JavaScript' 카테고리의 다른 글
자바스크립트 프로토타입과 프로토타입 체인, 이해와 활용 (0) | 2024.06.25 |
---|---|
JavaScript에서 조합(Combination) 구하기, 완전탐색 코드 상세 분석 (0) | 2024.03.22 |
3분 만에 배우는 자바스크립트 객체 지향 프로그래밍, 기초부터 실전까지 (0) | 2024.03.12 |
자바스크립트 프로토타입으로 배우는 객체 생성과 상속의 모든 것 (0) | 2024.03.12 |
JavaScript 함수에서 forEach와 return 사용 시 주의사항, 해결방법 (0) | 2024.01.02 |