본문 바로가기

코드스테이츠 프론트엔드

[JavaScript] 고차 함수

일급객체란 ?

1.변수에 할당이 가능하다.

2.다른 함수의 인자로 전달이 가능하다.

3.다른 함수의 결과로서 리턴이 가능하다.

고차함수?

-함수를 전달인자로 받는 함수

-함수를 리턴하는 함수

그외

-콜백함수는 고차함수가 아니다. 함수의 전달인자로 전달되는 함수 이다.

-클로져===커링함수 ㅇ

-함수가 일급객체라서 우리가 고차함수를 사용할수 있는것이다.

 

고차함수 대표 매서드

 

1. map

배열의 각 요소에 콜백함수를 적용시킨 새로운 배열을 리턴해준다.

///콜백함수
let arr=[1,2,3,4,5]
function multiply2 (num){
return num*2
}
///함수를 적용시킨 새로운 배열 리턴
arr.map(multiply2)
[2,4,6,8,10]

2.filter

배열의 각 요소에 콜백 함수를 적용시켰을때 true를 리턴하는 요소들만 모은 새로운 배열을 리턴

원하는 값만 추출하고 싶을 때 사용한다.

let arr=[1,2,3,4,5]
arr.filter(el=>el%2 ===0) //참인 조건
//결과 [2,4]

3.reduce

배열의 각 요소를 콜백함수에 맞게 하나로 응축시킨 값을 리턴

초기값이 없으면 첫 누적값. 즉 배열의 첫번째 요소가 누적값에 들어가 초기값(acc)이 된다.

현재값은 배열의 두번째 요소 이다.

acc는 누적값을 나타내고

cur은 현재 값을 나타낸다.

let arr= [1,2,3,4,5]
arr.reduce((acc,cur)=>{
return acc+cur
})
//결과 15

아래의 경우  acc의 초기값 10 cur은 배열의 첫번째 요소인 1부터 시작 된다.

let arr=[1,2,3,4,5]
arr.reduce((acc,cur)=>{
},10)//<-초기값 설정
//결과는 25

!빈배열을 나타내야 할 때에는 초기값에 0을 꼭 넣어주어야 한다.!

 

4.오늘의 후기

 

 

reduce는 참 좋은 매서드인것 같다. 코플릿 과제를 풀면서 반복문에서 난관을 겪었던 지난 날을 돌아보면 버티길 잘한것같다. 요즘은 사실 하루가 어떻게 지나가는지 모를 만큼 시간이 참 빠르다 ㅠ 그래도 코플릿에서 푸는 과제는 section4를 제외하면 오늘이 마지막이라고 하니 기쁘다. 그리고 생각보다 고차함수에서 고비를 겪는 사람들이 많다고 하는데 나같은 경우 처음에는 헷갈렸지만 코플릿 예제를 풀다보니 개념이 와닿았고 굉장히 흥미롭게 공부 할 수 있었다. 그리고 요즘 함수 작성시 화살표 함수를 사용하는 연습을 하고 있는데 처음엔 적용시키기 헷갈렸는데 적응이 되니까 코드가 너무 깔끔해져서 기분이 좋다. 자바스크립트 너무 재밌다..! 

'코드스테이츠 프론트엔드' 카테고리의 다른 글

[JS/Node] 비동기  (0) 2022.07.26
[JavaScript] 객체 지향 프로그래밍  (0) 2022.07.22
Coz’ Mini Hackathon  (0) 2022.07.19
Javascript-DOM  (0) 2022.07.14
Day2 Unit2 - [JavaScript] 기초  (0) 2022.06.27