하루 종일 underbar lib함수들을 만들어보는 과제를 페어와 함께 수행했다.
함수들을 만들 때 가장 많이 참조 됐던 underbar 함수는 _.each 였다.
그런데 레퍼런스를 보고 나서 reduce를 쓰면 훨씬 쉽고 명료하게 코드를 작성할 수 있다는 것을 알고는 reduce가 완전 익숙해 질 때 까지 자주 연습해야 겠단 생각이 들었다.
오늘 공부한 함수 중 가장 주목했던 함수는 단연 sort() 메소드다.
function compareNumbers(a, b) {
return a - b; //오름 차순.
// b - a; 이면 내림 차순.
}
array.sort(compareNumbers);
array === [1,2,3,10]
이렇게 콜백함수를 별도로 선언해 놓는 게 더 이해하기 편하기도 하다.
sort의 콜백함수는 0보다 큰 값을 리턴하면 b를 더 낮은 인덱스로 판단해 b가 먼저오고, 0보다 작은 값을 리턴하면 a가 더 낮은 인덱스로 판단해 a가 먼저오게끔 정렬하고, 0을 리턴하면 a, b가 서로 같은 값이니 변경이 없다.
! map, filter, reduce, forEach, sort 이렇게 5가지 메소드는 필수로 익숙해져야 겠다!