배열 뒤에 .sort()를 붙혀주면 된다.
예를 들면
var array = [ 3, 2, 1, 5, 4]
array.sort();를 하면
[1,2,3,4,5]로 오름차순으로 정렬 된다.
이것은 숫자 뿐만 아니라, 기호도 가능하다.
하지만 주의할 점은 정렬 될 때 ASCII 코드를 기준으로 정렬되므로 숫자를 정렬할 때 문제가 생긴다
[10, 5]가 있으면 정렬이 되지 않는다.
그 이유는 10과 5를 문자, 즉 알파벳이라고 생각한다면
0 -> A, 1 -> B, 2 -> C 이렇게 변환할 수 있을 것이고,
각각 BA와 F 이라고 볼 수 있다.
그러면 사전 순으로는 10이 5 앞에 서게 된다.
그럼 정렬이 숫자의 크기대로 이루어지지 않게 된다.
따라서 이럴 때는 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);
이렇게 하면 된다
반응형
'Coding > JavaScript' 카테고리의 다른 글
javascript 문자열에 문자열 추가하기 ( + , concat ) (0) | 2020.02.25 |
---|---|
javascript 배열 일부만 복사 slice (0) | 2020.02.24 |
Javascript 메모리 생존 주기 ( 계속 추가 및 수정 중) (0) | 2020.02.19 |
JavaScript SetTimeout 사용법 (0) | 2020.02.18 |
javascript fill() 함수 (0) | 2020.02.15 |