Skip to main content
0:00est. 5 min

Chapter 51- Functional Programming

Notes

First Class Functions - Functions that behaves like objects, passed as parameters, return them from functions
Example 1 - Creating new array out of given array
var arr1 = [1,2,3];
console.log(arr1);

var arr2 = [];
for(var i=0;i<arr1.length;i++){
arr2.push(arr1[i]*2);
}

console.log(arr2);


Example 2 - Creating new array out of given array using functional programming
function mapForEach(arr, fn){
var newArr = [];
for(var i=0; i<arr.length; i++){
newArr.push(fn(arr[i]);
}
return newArr;
}

var arr1=[1,2,3];
//multiply by 2 and copying values in array
var arr2 = mapForEach(arr1,function(item){
return item*2;
});
//OUTPUT
arr2 = [2,4,6];
//check if item is greater than 2 and creating new array of boolean items
var arr3 = mapForEach(arr1,function(item){
return item>2;
});
//OUTPUT
arr3 = [false, false, true];
Example 3 :
var checkPastLimit = function(limiter, item){
return limiter < item;
}

//created copy of checkPastLimit on the fly and passing limiter = 1
var arr4 = mapForEach(arr1, checkPastLimit.bind(this, 1));
console.log(arr4);
//OUTPUT
arr4 = [false,true,true];

//passing only limit to a function and returning checkPastLimit
var checkPastLimitSimplified = function (limiter){
return function(limter, item){
return limiter < item;
}.bind(this,limiter); //using bind to set first param pre-set
};

var arr5 = mapForEach(arr1,checkPastLimitSimplified(1));
//OUTPUT
arr5 = [false,true,true];