Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
December 27, 2021 09:23 am GMT

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:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To