[JavaScript] 고차 함수
고차 함수
고차 함수란, 다른 함수를 전달 인자로 받거나, 함수 실행 결과로 함수로 반환하는 함수를 말한다. 고차 함수는 위에서 살펴본 일급 객체의 두 가지 특성을 만족하는 것을 알 수 있다.
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()을 거쳐 평탄화한다.
댓글남기기