함수형 프로그래밍을 사용한 JavaScript 고차 함수
11623 단어 webdevbeginnersfunctionaljavascript
따라서 함수형 프로그래밍에 대해 더 잘 이해하는 방식으로 몇 가지 예제를 구현하여 시작하겠습니다.
const num = [2,3,4,5];
const calculateSquare = function (num){
const results = [];
for( let i=0; i<num.length;i++) {
results.push(num[i] * num[i]);
}
return results;
};
console.log(calculateSquare(num)); //This returns ->(4) [4, 9, 16, 25]
const calculateCube = function (num){
const results = [];
for( let i=0; i<num.length;i++) {
results.push(num[i] * num[i] * num[i]);
}
return results;
};
console.log(calculateCube(num)); //This returns ->(4) [8, 27, 64, 125]
우리는 필요한 기능을 구현하고 있지만 위의 코드에서 볼 수 있습니다(즉, array(num)에 있는 숫자의 제곱과 큐브). 이를 결과로 푸시한 다음 결과를 반환합니다.
보다 기능적인 방식으로 코드를 최적화하여 더 많은 유사한 기능을 추가하기가 훨씬 더 깔끔하고 쉽게 보이도록 합시다.
const num = [2,3,4,5];
console.log(num); // ->(4) [2, 3, 4, 5]
const square = function(num){
return num * num;
}
const cube = function(num){
return num* num * num;
}
//Added a new function to add the num
const add = function(num){
return num + num;
}
const calculate = function(num,logic){
const results = [];
for( let i=0; i < num.length; i++) {
results.push(logic(num[i]));
}
return results;
}
console.log(calculate(num,square)); -> (4)[4, 9, 16, 25]
console.log(calculate(num,cube)); ->(4) [8, 27, 64, 125]
console.log(calculate(num,add));-> (4) [4, 6, 8, 10]
이것은 이 코드와 우리가 작성한 위의 코드 사이의 차이점을 발견할 수 있는 것입니다.
이제 우리가 생각하는 것보다 더 강력한 🚀 고차 함수에 들어갈 시간입니다. 계산 부분에서 모든 논리를 수행하고 있으므로 계산 부분이 이미 JavaScript(내장 방법)로 작성되었다고 말하면 어떻게 됩니까? 우리는 그것을 사용하고 고차 함수의 진정한 힘을 볼 수 있습니다.
//this is the part we have taking about
const calculate = function(num,logic){
const results = [];
for( let i=0; i < num.length; i++) {
results.push(logic(num[i]));
}
return results;
}
//using MAP function
const results = (num.map(square));
console.log(results); -> (4)[4, 9, 16, 25]
위의 코드에서 지도가 무엇을 하는지 봅시다.
지도 기능을 구현하는 한 가지 방법일 뿐이며 MDN 문서에서 참조할 수 있는 지도 기능에는 훨씬 더 많은 가능성이 있습니다.
이것이 함수형 프로그래밍과 고차 함수의 사용에 대한 약간의 이해가 되기를 바랍니다.
읽어 주셔서 감사합니다
Reference
이 문제에 관하여(함수형 프로그래밍을 사용한 JavaScript 고차 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/arunnithish/javascript-higher-order-functions-with-functional-programing-93k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)