sort 메소드
메소드 sort는 배열을
사전순으로 정렬하고 이미
변경된 배열을 반환합니다. 선택적 매개변수로
사용자 정의 정렬 함수를 지정할 수 있습니다.
구문
배열.sort([함수]);
예제
배열을 정렬해 봅시다:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
코드 실행 결과:
['a', 'b', 'c', 'd']
예제
숫자가 있는 배열을 정렬해 봅시다:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
코드 실행 결과:
[1, 2, 4, 7]
예제
배열에 숫자를 추가하고 정렬해 봅시다:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
코드 실행 결과를 보면 숫자가 오름차순이 아닌 사전순으로 배치된 것을 볼 수 있습니다. 즉, 숫자끼리 문자열처럼 비교됩니다. 이때 비교는 각 문자별로 이루어지며, 첫 번째 문자의 코드가 이웃한 문자보다 큰지 등을 확인합니다. 결과:
[1, 111, 123, 2, 4, 7]
예제
이제 함수를 사용하여 배열을
정렬해 보겠습니다. 함수에 조건을 명시합니다 -
첫 번째 매개변수가 두 번째보다 크면 위치를 바꿉니다
(이를 위해 return에 양수를 반환합니다).
반대의 경우 위치 변경이 필요하지 않으므로
0 또는 임의의 음수를 지정합니다:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
코드 실행 결과:
[1, 2, 4, 7, 111, 123]
예제
편의를 위해 이전 예제의 함수 코드를 줄여 보겠습니다:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
코드 실행 결과:
[1, 2, 4, 7, 111, 123]
예제
이제 함수를 사용하여 배열을 내림차순으로 정렬해 봅시다:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
코드 실행 결과:
[123, 111, 7, 4, 2, 1]
예제
객체 배열을 키 'one' 기준으로
오름차순 정렬해 봅시다:
let arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.one - b.one;
});
console.log(arr);
코드 실행 결과:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
예제
이제 객체 배열을 키 'two' 기준으로
정렬해 봅시다:
let arr = [
{one: 1, two: 2},
{one: 7, two: 1},
{one: 3, two: 3}
];
arr.sort(function(a, b) {
return a.two - b.two;
});
console.log(arr);
코드 실행 결과:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
예제
sort 메소드를 적용한 후 배열이
변경되었는지 확인해 봅시다:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
코드 실행 결과:
['a', 'b', 'c', 'd']
함께 보기
-
메소드
filter,
배열 요소를 필터링할 수 있게 해줍니다