An Interest In:
Web News this Week
- March 21, 2024
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
December 27, 2021 09:23 am GMT
Original Link: https://dev.to/umashankar_s/higher-order-functions-in-js-2b5d
Higher Order Functions in JS
Write a snippet of functions to calculate area, circumference and diameter of the circle.
- without higher order function (repetitive code):
const radius = [2,3,4,5,6,7];let output = [];const area = function(radius) { output = []; for(i=0;i<radius.length;i++){ output.push(Math.PI*radius[i]*radius[i]); //Area = PI*radius*radius } return output;}const circumference = function(radius) { output = []; for(i=0;i<radius.length;i++){ output.push(2*Math.PI*radius[i]); } return output;}const diameter = function(radius) { output = []; for(i=0;i<radius.length;i++){ output.push(2*radius[i]); } return output;}console.log(area(radius));console.log(circumference(radius));console.log(diameter(radius));
- with higher order function (function that takes another functions as an argument or returns a function)
const radius = [2,3,4,5,6,7];let output = [];const area = function(value) { return Math.PI*value*value;}const circumference = function(value) { return 2*Math.PI*value;}const diameter = function(value) { return 2*value;}const calculate = function(radius, logic) { output = []; for(i=0;i<radius.length;i++){ output.push(logic(radius[i])); } return output;}console.log(calculate(radius, area));console.log(calculate(radius, circumference));console.log(calculate(radius, diameter));
- with ES6 feature Map.
const radius = [2,3,4,5,6,7];const area = function(value) { return Math.PI*value*value;}const circumference = function(value) { return 2*Math.PI*value;}const diameter = function(value) { return 2*value;}console.log(radius.map(diameter))
- Cloning of Map function using higher order function. (Map Polyfill)
const radius = [2,3,4,5,6,7];let output = [];const area = function(value) { return Math.PI*value*value;}const circumference = function(value) { return 2*Math.PI*value;}const diameter = function(value) { return 2*value;}Array.prototype.calculate = function(logic) { output = []; for(i=0;i<this.length;i++){ output.push(logic(this[i])); } return output;}console.log(radius.map(area)) //default js functionconsole.log(radius.calculate(area)); //cloned the map function
Original Link: https://dev.to/umashankar_s/higher-order-functions-in-js-2b5d
Share this article:
Tweet
View Full Article
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To