배열 뒤에 .sort()를 붙혀주면 된다.

 

예를 들면 

 

var array = [ 3, 2, 1, 5, 4]

 

array.sort();를 하면

 

[1,2,3,4,5]로 오름차순으로 정렬 된다.

 

이것은 숫자 뿐만 아니라, 기호도 가능하다.

 

하지만 주의할 점은 정렬 될 때 ASCII 코드를 기준으로 정렬되므로 숫자를 정렬할 때 문제가 생긴다

 

[10, 5]가 있으면 정렬이 되지 않는다.

 

그 이유는 105를 문자, 즉 알파벳이라고 생각한다면

0 -> A, 1 -> B, 2 -> C 이렇게 변환할 수 있을 것이고,

각각 BAF 이라고 볼 수 있다.

 

그러면 사전 순으로는 10이 앞에 서게 된다.

그럼 정렬이 숫자의 크기대로 이루어지지 않게 된다.

 

따라서 이럴 때는 sort안에 정렬 되는 기준을 함수로 넣어주어야한다.

 

예를 들면 숫자를 오름차순으로  정렬할 것이라면

 

array.sort( function (a, b){ 

   return a-b;

});

 

이렇게 하거나

 

화살표 함수를 사용하면

 

array.sort( (a, b) => {

   return a-b;

});

 

더 간단하게는

 

array.sort( (a, b) => a-b);

 

이렇게도 가능하다. 

 

(이게 이해가 되지 않는다면 화살표 함수를 공부하는 게 좋을 것 같다.)

 

이렇게 하면 숫자 오름차순 정렬이 된다.

 

반대로 내림차순은

 

array.sort( (a, b) => b-a);

 

이렇게 하면 된다

반응형

+ Recent posts