고차함수
sort()메소드 안에 들어갈 이 비교자 함수는 2개의 인자가 필요합니다.
function compare(a,b){
return a - b
}
let base = [1,2,3,4,5]; base.sort((a,b)=> a-b); // 이런식으로 작성하면 a-b라는 과정을 거치면서 양수,음수, 0이라는 값을 얻게 된다. //그래서 양수가 나오면 b가 앞으로 가고, a가 뒤에 배치되는 결과를 가질 수 있다. //따라서위의 식은 [1, 2, 3, 4, 5] 이렇게 오름차순 정렬된 배열을 가지게 된다. base.sort((a,b)=> b-a) ; //이렇게 비교함수를 작성하게 되면, 거꾸로 // [5, 4, 3, 2, 1] 이런식의 내림차순으로 정렬된 배열을 가지게 된다.
또한 비교함수를 써서 sort를 사용하는 경우 , let base = [10, 99, 123, 7]; 일때, base.sort() // [10, 123,7,99] 이렇게 배열이 정렬되는 반면, base.sort((a,b)=> a-b); // [7, 10, 99, 123] 제대로 정렬된 배열을 가지게 된다.
sort(비교함수)를 사용하면 기존 배열이 변경된(정렬된) 배열로 변경된다.
복사본을 가지는 것이 아니라 원배열이 변동
되는것임을 기억하자.