본문 바로가기

MEMO

sort?

 sort ?

: 배열의 요소를 정렬하는데 사용하는 함수이다.

 

sort라는 메서드에 내장 되어 있는 함수는 리턴 값이 음수, 0, 양수 로의 차례로 정렬된다

- 기본적으로 유니코드값으로 정렬

 

만약 [1, 40, 23, 5] 를 순서대로 나열하고 싶어서

const a = [ 1, 40, 23, 5 ]

a.sort();                         

코드를 작성한다면 원하는 값인 [1 , 5 ,23 ,40]이 아니라 [1, 23, 40, 5] 라는 값이 나오게 된다

이것은 sort()가 기본적으로 유니코드 값으로 정렬하기 때문이다 

그렇기 때문에 숫자를 정렬하기 위해 

 

const a = [ 1, 40, 23, 5 ]

a.sort((a, b) => a - b);                                    오름차순

a.sort((a, b) => b - a );                                   내림차순

a - b < 0 : a가 b보다 앞에 있어야 한다.

a - b = 0 : a와 b의 순서를 바꾸지 않는다.
a - b > 0 : b가 a보다 앞에 있어야 한다.          이러한 원리로 작동된다.

const x = [1,40,23,5]
x.sort((a,b) =>
     a - b);

console.log(x);

[1, 5, 23, 40] 오름차순으로 올바르게 정렬된다