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 |
댓글