본문 바로가기

Coding Language/JavaScript

[JavaScript] sort 메서드

[해당 포스트는 개인적으로 공부를 하고 차후에 참고용으로 하고자 작성한 것입니다.
따라서 잘못된 부분이나 부족한 부분이 있을 수 있기에 참고하시기 바랍니다.]

JavaScript의 내장 함수 중 sort() 메서드가 존재한다. 해당 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다. 새로운 배열이 생성되는 것이 아니라, 기존의 배열에 정렬되는 것이다.

 

기본 정렬 순서는 문자열의 유니코드 코드 포인트에 따르기 때문에 숫자를 정렬한다고 해서 숫자가 오름차순으로 정렬되는것이 아니라는 것에 주목하자.

 

다음의 예제는 문자열 배열을 sort()를 통해 정렬했을 때 결과다.

 

var ar = ['Orange', 'Banana', 'Apple'];
ar.sort();
console.log(ar); // ['Apple', 'Banana', 'Orange']

 

문자는 A, B, C... 를 기준으로 유니코드에 따라 정렬이 된다.

 

문제는 숫자를 정렬했을 때이다.

 

var ar = [52,273,103,32];
ar.sort();

console.log(ar); // [ 103, 273, 32, 52]

 

유니코드를 기준으로 앞자리에 숫자가 1xx이 오는 것이 먼저 나오고, 그다음 2xx, 3xx, 4xx 순으로 정렬되는 것을 볼 수 있다.

 

Array의 내장 Sort는 유니코드, 즉 문자를 기준으로 정렬할 때 효율적으로 사용할 수 있을 것으로 보인다.