[javascript] 고차함수

zoe·2022년 9월 20일

Javascript

목록 보기
9/19

일급 객체

자바스크립트에서 함수는 아래와 같은 3가지 특징을 가지고 있다.

1. 변수에 할당 가능

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

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

이러한 특징들 때문에, 자바스크립트에서 함수는 일급 객체라고 한다.
함수는 일급 객체여서 고차 함수로 활용이 가능!

고차 함수

고차 함수는 다음과 같은 함수를 포함한다.

1. 함수를 전달 인자로 가지는 함수

함수를 전달인자로 가지는 함수는 고차함수이다.
이때, 함수의 전달인자가 되는 함수를 콜백(callback,답신)함수라고 한다.

2. 함수를 리턴하는 함수

함수를 리턴하는 함수는 고차 함수이다. 함수를 리턴하는 함수를 처음 고안해낸 사람의 이름을 따서 커링함수라고 부르기도 한다.

배열 내장 메서드

고차함수 메서드

자주 쓰이는 내장 고차 함수들이 있다.
배열 메서드들 중 일부가 대표적인 내장 고차 함수 이다.

1. filter

filter 메소드는 배열의 각 요소를 조건에 따라 필터처럼 걸러서,
조건을 통과하는 요소들만 따로 모아 새로운 배열로 리턴한다.

filter 활용 과정

  • 배열의 각 요소가
  • 특정 논리(함수)에 따르면, '사실(true)'일 때
  • 따로 분류합니다(filter).

---> 값을 걸러내어 배열로 리턴하고자 할때 사용

arr.filter(function(el) {
return el % 2 === 0;
})

() 내부에는 리턴값이 참/거짓인 함수가 전달인자로 들어간다.
el은 배열의 요소이다.
조건이 참이면, el은 새로운 배열의 요소로 추가된다.

2. map

map 메소드는 배열의 각 요소를 특정 논리(함수를 거쳐서),
다른 요소로 변환한 값을 모아 새로운 배열로 리턴한다.

map 활용 과정

  • 배열의 각 요소가
  • 특정 논리(함수)에 의해
  • 다른 요소로 지정(map) 됩니다.

---> 각각의 요소를 다른 값으로 바꾸어 배열로 리턴하고자 할때 사용

3. reduce

reduce 메소드는 배열의 각 요소를 특정 논리(함수)를 거쳐서,
하나의 값으로 응축시킨다.

reduce 활용 과정

  • 배열의 각 요소를
  • 특정 방법(함수)에 따라
  • 원하는 하나의 형태로
  • 응축합니다. (reduction)

---> 여러 요소를 하나의 결과값으로 응축시키고자 할때 사용

reduce에서는 중요한 키워드가 세가지 있다.

  • acc(응축값)
  • cur(현재값)
  • initialValue(초기값)
    초기값을 설정해주지 않으면, acc의 처음 값은 배열의 첫번째 요소의 값이 된다.
profile
Zoë Park

0개의 댓글