본문 바로가기

JavaScript/Modern JavaScript

[JavaScript] sort/ reverse 메소드

[sort 메소드]

배열에서는 sort 라는 메소드를 활용해 배열을 정렬할 수 있다.

sort 메소드에 아무런 아규먼트도 전달하지 않을때는 기본적으로 유니코드에 따라 정렬된다.

const letters = ['D', 'C', 'E', 'B', 'A'];
const numbers = [1, 10, 4, 21, 36000];

letters.sort();
numbers.sort();

console.log(letters); // (5) ["A", "B", "C", "D", "E"]
console.log(numbers); // (5) [1, 10, 21, 36000, 4]

그렇기 때문에 위처럼 상식적으로 우리가 생각하는 정렬과 다를 수 있는데, 

 

 

그럴때는 sort 메소드에 다음과 같은 콜백함수를 아규먼트로 작성해주면 된다.

const numbers = [1, 10, 4, 21, 36000];

// 오름차순 정렬
numbers.sort((a, b) => a - b);
console.log(numbers); // (5) [1, 4, 10, 21, 36000]

// 내림차순 정렬
numbers.sort((a, b) => b - a);
console.log(numbers); // (5) [36000, 21, 10, 4, 1]

 


[Reverse 메소드]

 

말그대로 배열의 순서를 뒤집어주는 메소드로, 별도의 파라미터가 존재하지 않기 때문에 메소드를 호출해주면 배열이 뒤집힌다.

const letters = ['a', 'c', 'b'];
const numbers = [421, 721, 353];

letters.reverse();
numbers.reverse();

console.log(letters); // (3) ["b", "c", "a"]
console.log(numbers); // (3) [353, 721, 421]