늘 겸손하게

JavaScript Array sort - 자바스크립트 숫자 배열 정렬이 제대로 안될 때 본문

Programming/JavaScript

JavaScript Array sort - 자바스크립트 숫자 배열 정렬이 제대로 안될 때

besforyou999 2022. 1. 7. 21:13

 

안녕하세요 besforyou입니다

 

자바스크립트 정렬에 대하여 소개해보겠습니다.

 

그리고 숫자 배열 정렬이 제대로 안될 때의 해결 방법도 소개해보겠습니다.


Array.prototype.sort()

 

1
2
3
4
5
var array = [ 1100 ,10 ,20 ,60 ,55 ,3 , 278 ];
 
array.sort(); // 내장 정렬 함수
 
console.log(array);
cs

 

자바스크립트 배열에는 sort 함수가 내장되어 있어 간편하게 사용할 수 있습니다.

 

하지만 주의할 점은, compareFunction이 주어지지 않으면 모든 원소를 문자열(string)으로 변환하고 UTF-16 code units order로 정렬합니다. 그래서 오름차순 정렬인데 "80"이 "9" 앞에 배치될 수 있습니다. 

 

그러므로 정수 배열을 오름차순으로 정렬하고 싶다면

 

방법 1. 

1
2
3
4
5
6
7
var array = [ 1100 ,10 ,20 ,60 ,55 ,3 , 278 ];
 
array.sort(function(a,b) {
    return a - b;
});
 
console.log(array);
cs

 

방법 2.

1
2
3
4
5
var array = [ 1100 ,10 ,20 ,60 ,55 ,3 , 278 ];
 
array.sort((a, b) => a - b );
 
console.log(array);
cs

 

내림차순으로 정렬하고 싶다면 a - b를 b - a로 바꾸면 됩니다.