본문 바로가기
Development (국비 복습 )/JavaScript

비교 함수 compare function

by Puddingforever 2022. 9. 26.

 

 

https://stackoverflow.com/questions/6567941/how-does-sort-function-work-in-javascript-along-with-compare-function
비교함수를 시작하기 전에...

자바스크립트의 sort는 숫자도 문자열로 생각하고 반환한다.

a = [100,3,20]라는 배열이 있을 때,
a.sort()를 실행하면 3,20,100이 나오지 않고
100,20,3이 출력된다.
앞에 string값 1,2,3만 보고 오름차순으로 출력하기 때문이다.
//오름차순(ascending)은 1 → 2 → 3 → 4 → …… 와 같이 뒤로 갈수록 숫자가 커지는 경우

따라서 비교함수를 사용하여 오름차순 정렬을 해야한다.

 

How does sort function work in JavaScript, along with compare function

As already asked: how does sort function work in JavaScript, along with the compare function? If I have an array, and I do array.sort(compare) now it was written in the book that if the compare fun...

stackoverflow.com

 


function compare(a,b){

return a-b

}

 

1.a가 b보다 값이 크면 +가 나온다.

2.a와 b의 값이 동일하면 0

3.b의 값이 더 크면 -

 

var numbers = [1,5,3.14]

compare(1,5); // -4
1이 더 작기 때문에 sort()에서는 1,5로 정렬

compare(1,3.14); // -2.14
1이 더 작기 때문에 sort()에서는 1,3.14로 정렬

compare(5,3.14)//1.86 
5가 더 크기 때문에 sort()에서는 3.14다음에 5를 배치한다.

따라서 1,3.14,5 로 배열이 완성된다. 

즉, 값이 -가 오면 a가 더 작다는 의미니까 앞으로 가게 된다. 

 

'Development (국비 복습 ) > JavaScript' 카테고리의 다른 글

array.forEach() , map()  (0) 2022.09.28
The Fisher Yates Method 셔플 알고리즘  (0) 2022.09.26
splice  (0) 2022.09.26
js 배열  (0) 2022.09.21
${변수명} String interpolation 문자열 보간  (1) 2022.09.21

댓글