Javascript :: sort(), 배열 정렬하기 (숫자, 문자, 객체, 오름차순, 내림차순)
JavaScript 에서 배열 정렬하기 위해서 많이 쓰이는 sort() 를 알아보겠습니다.
sort() 메소드는 배열 요소의 자리를 정렬하는 데 사용됩니다.
아래 순서대로 살펴보겠습니다.
- 문자열 정렬하기
- 숫자 오름차순 정렬
- 숫자 내림차순 정렬
- 객체 정렬
1. 문자열 정렬하기
기본적으로 sort()는 문자열을 알파벳 순으로 정렬합니다.
See the Pen Untitled by lkosvme (@lkosvme) on CodePen.
2. 숫자 오름차순 정렬하기
아래 예제는 숫자 배열을 만들고 오름차순으로 정렬하는 방법입니다.
See the Pen Untitled by lkosvme (@lkosvme) on CodePen.
numbers.sort((a, b) => a - b)
위에 소스코드를 보충 하자면
numbers.sort((a, b) => a - b); 에서 (a, b) => a - b 는 콜백 함수입니다.
이 콜백 함수는 두 개의 매개변수 a와 b를 받아서, a - b의 결과값을 반환합니다.
a - b 의 값이 양수일 경우 a와 b의 순서를 바꿔줍니다.
이를 반복하면 a가 b보다 작은 요소부터 큰 요소로 반환하여 오름차순으로 정렬하게 됩니다.
3. 숫자 내림차순 정렬하기
위에 코드가 이해가 되었다면 내림차순은 너무도 쉽겠죠.
순서만 바꿔주면 됩니다. a - b 에서 b - a 로.
See the Pen sort() 숫자 역정렬 by lkosvme (@lkosvme) on CodePen.
4. 객체 정렬하기
객체 정렬은 실제로 가장 많이 쓰일 것이라고 생각이 듭니다.
위에 내용의 반복입니다.
See the Pen sort() 객체정렬 by lkosvme (@lkosvme) on CodePen.
마찬가지로 age 의 역순으로 정렬하려면 아래처럼 순서를 변경 해주면 됩니다.
// people.sort((a, b) => a.age - b.age);
// 위에 a.age - b.age 가 반대로 가면 되겠죠
people.sort((a, b) => b.age - a.age);
사실 이해하면 쉬운 코드인데, 그동안 이해하려고 안하고 복붙으로 사용했던거 같습니다.
다들 즐코합시다!