TIL_016_210209

James·2021년 2월 9일
0

TILs

목록 보기
16/40

Underbar 함수 만들기 종료

하루 종일 underbar lib함수들을 만들어보는 과제를 페어와 함께 수행했다.

함수들을 만들 때 가장 많이 참조 됐던 underbar 함수는 _.each 였다.
그런데 레퍼런스를 보고 나서 reduce를 쓰면 훨씬 쉽고 명료하게 코드를 작성할 수 있다는 것을 알고는 reduce가 완전 익숙해 질 때 까지 자주 연습해야 겠단 생각이 들었다.

오늘 공부한 함수 중 가장 주목했던 함수는 단연 sort() 메소드다.

  • array.sort(); 단순히 이렇게만 쓰면 유니코드 순서에 따라 오름차순 정렬을 한다.
    => 숫자를 비교할 땐 절 때 이렇게 쓰면 안된다.
    ex) let array = [1,2,3,10]
    let sortedArr = array.sort();
    sortedArr === [1,10,2,3]
  • array.sort(comparefunction)
    => 유니코드로 정렬하고 싶은 경우는 아주 드물다. 정렬 기준을 정의하기 싶다면 sort의 인자로 comparefunction이라 불리는 콜백함수를 사용해야 한다.
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가지 메소드는 필수로 익숙해져야 겠다!

profile
웹개발자 James 입니다.

0개의 댓글