JavaScript/Basic

sort 함수의 compare function

yunajoe 2023. 1. 1. 12:32
arr.sort([compareFunction])

[compareFunction]은 sort 함수의 콜백함수로 firstEl과 secondEl이란 인자가 자동


[compareFunction]을 작성할 때는 어떤 값을 반환하는지가 중요 합니다. 
숫자 값을 반환해야 하는데 총 3가지 경우로 나눌 수 있습니다.

0보다 크다
0이다
0보다 작다
0을 기준으로 3가지 케이스로 나뉩니다.


매개변수로 a, b를 받았고 반환 값이 0보다 큰 경우에는 만일 [a, b]의 값이 들어왔다면, 그대로 [a, b]가 됩니다. a가 먼저옵니다.
compareFunction(a,b) 이 0보다 작은 경우, a가 먼저 오게됨

매개변수로 a, b를 받았고 반환 값이 0인 경우에는 만일 [a, b]의 값이 들어왔다면, 그대로 [a, b]가 됩니다. a와 b의 위치를 그대로 둡니다.
compareFuntion(a,b) 이 0과 같은 경우, 정렬하지 ㅇ
매개변수로 a, b를 받았고 반환 값이 0보다 작은 경우에 [a, b]의 값이 들어왔다면, b가 먼저 오게 됩니다. [b, a]가 되는 겁니다.

// [1,2,3,4,5]

// 1 or 0 or -1 / 단, 변경은 -1에서만 일어난다

// https://velog.io/@jakeseo_me/Javascript-Sort%ED%95%A8%EC%88%98%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9E%A1%EC%A7%80%EC%8B%9D


// 원본도 변경되는 것에 주의!
// sort 함수는 원본을 변경하는 함수이기 때문에 매우 주의해