[JavaScript] 고차 함수

최대 1 분 소요

고차 함수

고차 함수란, 다른 함수를 전달 인자로 받거나, 함수 실행 결과로 함수로 반환하는 함수를 말한다. 고차 함수는 위에서 살펴본 일급 객체의 두 가지 특성을 만족하는 것을 알 수 있다.

MDN에서 찾아본 결과, JS에서 제공하는 Array에서 사용 가능한 고차 함수들은 다음과 같이 11개가 존재한다.

  • foreEach()
  • map()
  • reduce(), reduceRight()
  • filter()
  • sort()
  • find()
  • findIndex()
  • every()
  • some()
  • flatMap()


const isBelowThreshold = currentValue => currentValue < 40;
const nums = [1, 30, 39, 29, 10, 13];

console.log(nums.every(isBelowThreshold)); // true

every()는 배열 안 모든 요소가 주어진 판별 함수를 통과하는지 확인하고, 그 여부를 리턴한다.


const even = element => element % 2 == 0;
const nums = [1, 2, 3, 4, 5];

console.log(nums.some(even)); // true

some()은 배열 안 어떤 요소가 주어진 판별 함수를 통과하는지 확인하고, 그 여부를 리턴한다. every()는 판별 함수를 모든 요소가 통과해야 true를, some()은 하나만 통과해도 true를 리턴한다.


let arr1 = [1, 2, 3, 4];

console.log(arr1.map(x => [x * 2]));       // [ [2], [4], [6], [8] ]
console.log(arr1.flatMap(x => [x * 2]));   // [ 2, 4, 6, 8 ]
console.log(arr1.flatMap(x => [[x * 2]])); // [ [2], [4], [6], [8] ]

flatMap()map()flat()을 합쳐놓은 메서드로, 먼저 map()을 거쳐 새로운 배열을 만든 후, 만들어진 배열에 flat()을 거쳐 평탄화한다.

카테고리:

업데이트:

댓글남기기