[TIL]2023-03-14

문종후·2023년 3월 14일
0

오늘은 Section2 를 진행한 첫날이였다.
마지막 라이브섹션에서 section1 과 section2를 롤에 비유한게 이해가됬다.

오늘배운 내용을 간단하게 정리하고 요약해 기억할부분만 남겨보고자한다.

고차함수

오늘의 가장큰 테마는 고차함수였다.
그렇다면 고차함수란 무엇이었을까?
바로 함수라는 일급객체기떄문에 변수로서 할당이가능한특징이있어 전달인자로 결과로 함수가 모두활용되기때문에 함수안에 여러함수들이포함되어 고차함수라고 부르기로했다.

그렇가면 고차함수를 굳이사용해야하는이유가뭘까?

개발자로서 무언가를 만들어내는것에 중요한점은 "추상화"이다. 범위가 보다넓고 더욱 일반적인 내용을 포함할수록 한가지의코드로 더많은케이스를 표현해낼수있다. 이런 추상적인표현을할때 여러함수들이 복합적으로 얽힌 고차함수는 아주 훌륭한 재료라고볼수있다.

아니 그러면 고차함수를 대체 어떻게쓰는건데?

오늘 학습내용에서는 여러 고차함수에대해서는 다루지않고 자바스크립트 내장고차함수중 배열에서의 메서드 Filter,Map,reduce 세가지에대해 집중적으로 학습했다.
아 물론 기본적인 메서드를 사용하지않은 이중고차함수같은경우는 코플릿 기본문제에서 간단하게다루었으나 쉬우니 생략한다.

Filter

필터는 그냥 간단하게 필터링한다라는 의미와 상통하게 걸러낼때 사용하면 좋다고보면될것같다.
예를들어 내가 여러 배열중에서 짝수만 뽑아내고싶을때 우리는 Filter 기능을 이용해 이를 걸러낼수있게된다.
수식으로 간단하게 사용방법을 정리하자면

arr.filter(function(el){return el%2===0})로 작성한다면 2로나눠지는 숫자들만 나열된 새로운배열로 탄생시켜준다.

map

맵은 맵핑한다 하나의그룹을 일괄적인 함수로 관리할떄 사용이 굉장히편리하다.
예를들어 전체배열의 모든요소를 곱하고싶거나 모든요소의 무언가 변화를 주고싶을때 이 map이란 요소를 사용한다면 아주적절한 활용이될것이다. 사용도식은 filter와 마찬가지다.

arr.map(function(el){return el*2})로 작성한다면 요소안에 모든것들이 2곱해진다.

Reduce(a,b)

reduce는 앞에서 나온 filter와 map과 사용구조가 다르다. reduce는 간단하게말하면 합치는거다. 혹시 이전 section1에서 공부했던 파보나치수열을 잠시끌어오자면 이는 요소들을 하나씩 순차적으로 늘려가며 더해줘 배열로 만들었다. reduce는 배열로만들지는않지만 천천히 하나씩 추가해 하나의값을 나오게만든다.

arr.reduce((a,b)=>{return a+b})
a는 합산되는값이고 b는 현재값이다.
예를들어보자 arr={1,2,3} 이라고 가정해보겠다. 그렇다면 위도식은 어떤식으로 적용이되냐

첫번쨰 시도에서 a=0 b=1
두번쨰 시도에서 a=1 b=2
세번째 시도에서 a=3 b=3
네번쨰시도에서 a=6이되어 모든요소가 더해지고 6이출력된다.
여기서 초기값이 0으로설정되어있는데 이를 다른값으로 설정하는방법도있다.
바로 {},initial value이다.

arr.reduce((a,b))=>{return a+b},10)
이라면 결과값은 16이 되겠다.

profile
개발자가되고싶은사람

0개의 댓글