고차 함수(higher-order function)란?
고차 함수는 하나 이상의 함수를 인수로 취하는 경우 또는 결과로 함수를 반환하는 함수를 의미합니다.
고차함수의 예로는 함수와 요소의 배열을 입력하여 배열의 각 요소 하나하나에 적용하여 변환된 요소들의 새로운 배열을 반환해주는 map 함수, 또 일정 조건을 만족하는 요소들만 모인 배열들을 반환하는 filter 등이 있습니다.
고차 함수는 복잡한 알고리즘 구현을 크게 단순화 할 수 있기에 굉장히 효율적인 도구입니다. 데이터를 조작하고 계산할 때 고차함수를 사용하면 굉장히 효율적입니다.
ex)함수를 인자로 받고, 함수를 리턴.
function addPlusThree(plusNum){
return plusNum+3;
}
function addMinus(added, func){
const plused = func(added);
console.log(plused);
return function(minusNum){
return plused - minusNum ;
};
}
console.log(addMinus(5,addPlusThree)); // function(minus) { return plused - munusNum}이 리턴됩니다.
const test = addMinus(5,addPlusThree); //
console.log(test(2)); // addplusThree에 들어가 8이된 값에서 addMinus의 return 함수에서 2가 빼진 6을 리턴합니다.
고차함수 map -> 배열의 각 요소에 함수를 적용한 새로운 배열을 반환해줍니다.
let arr = ["Yunsu" , "JJangoo" , "Jisung"];
let result = arr.map(function(ele){
return "Hi "+ ele;
})
console.log(result); //["Hi Yunsu","Hi JJangoo","Hi Jisung"]
고차함수 filter -> 배열의 각 요소중 함수를 만족하는 요소들이 모인 새로운 배열을 반환해줍니다.
let arr =[203,532,15,24];
let result = arr.filter(function(ele){
return ele>100;
})
console.log(result); //[203,532]
고차함수 reduce -> 초기값을 설정하고 각 요소를 돌며 함수를 적용한 최종 값을 반환해줍니다.
let arr = ['바','보','멍','청','이'];
let result = arr.reduce(function(acc,cur,idx){
acc+=cur;
return acc
},'나는 ');
console.log(result); // "나는 바보멍청이"
'JavaScript > JavaScript Basic' 카테고리의 다른 글
querySelector / querySelectorAll (0) | 2023.03.07 |
---|---|
Class / Class 상속 (0) | 2023.03.07 |
상속 / 프로토타입 (0) | 2023.03.06 |
배열(Array) / 구조 분해 할당 (0) | 2023.03.06 |
Object 객체 (0) | 2023.03.06 |