[JavaScript] 고차 함수

Seungmin Lee·2022년 7월 21일
0

JavaScript

목록 보기
9/14
post-thumbnail

1. 고차 함수

1-1. 일급 객체

비행기의 일등석처럼 자바스크립트에도 일등석과 같이 특별한 대우를 받는 일급 객체가 있다. 함수가 대표적인 일급 객체이다.

  • 변수에 할당 할 수 있다.
  • 다른 함수의 전달인자로 전달될 수 있다.
  • 다른 함수의 결과로서 리턴될 수 있다.

1-2. 고차 함수란?

  • 함수를 전달인자로 받을 수 있는 함수
    이 때, 전달인자로 전달되는 함수를 콜백 함수라고 한다.
  • 함수를 리턴하는 함수(커링 함수라고도 함)

2. 내장 고차 함수

filter, map, reduce, forEach, sort, every 등이 있다.

filter

배열의 각 요소(el)가 조건(함수)에 의해 true인 요소만 가지는 새로운 배열을 리턴한다.

let arr = [ 1, 2, 3 ];
let odd = arr.filter(function(el){
  return el%2 === 1 // 홀수인 요소만 리턴
});
console.log(odd) // [1, 3] // 홀수인 요소만 가지는 새로운 배열
consoel.log(arr) // [1, 2, 3] // 기존의 배열은 변하지 않음
                     

map

배열의 각 요소(el)에 콜백함수를 적용시킨 요소를 가지는 새로운 배열을 리턴

let arr = [ 1, 2, 3 ];
					// 각 요소에 곱하기2를 해주는 콜백함수
let result = arr.map(function(el){
	return el * 2
});
console.log(result) // [2, 4, 6] 
consoel.log(arr) // [1, 2, 3] // 기존의 배열은 변하지 않음                   

reduce

배열의 각 요소(cur)를 콜백함수의 조건에 따라 누적(acc)시킨 값을 리턴

let arr = [1, 2, 3, 4, 5]
let result = arr.reduce( (acc, cur) => {
  return acc + cur
})
console.log(result) // 15
  • 초기값 ❌
    배열의 첫번째 요소가 첫 누적값(acc)이 되고 두번째 값이 현재값(cur)이 됨

  • 초기값 ⭕️
    첫 누적값(acc)으로 초기값을 갖고, 배열의 첫번째 요소가 현재값(cur)이 됨

forEach

콜백 함수를 주어진 배열의 요소에 대해 각각 실행

const itmes = ['item1', 'item2', 'item3'];
const copy = [];

items.forEach(function(el){
  copy.push(el);
})

console.log(copy) // ['item1', 'item2', 'item3']
profile
<Profile name="seungmin" role="frontendDeveloper" />

0개의 댓글