Categories: javascript

Recursive Functions

A recursive function is one which defines a problem in terms of itself.

A recursive function calls itself directly or indirectly until it is stopped. If it is not stopped, then it will call itself forever – or maybe until your browser crashes!

Recursive functions let you perform a unit of work multiple times. And while it is similar to a for/while loop, using a recursive solution affords a unique, faster and much more elegant approach to solving a problem.

Let’s write a countdown function, shall we?

  1. Using Loop:
countDown = (num) => {
for(let i=num; i>0; i--){
console.log(i);
}
}
countDown(6) //5,4,3,2,1

2. Using Recursion

countDown = (num) => {
if(num === 0)
return 0;
console.log(num);
countDown(num - 1);
}

countDown(6) //5,4,3,2,1

A recursive function usually contains what is referred to as a “base case.”

A base case is a condition that checks and stops the recursion. It essentially prevents an infinite loop.

In the above example, the snippet below:

if(num === 0)
return;

is the base case, a condition that checks our program.

More examples

Supposing we want to write a solution that performs a raise-to-power operation, eg., 23.

We can use the inbuilt Math function in Javascript like so:

Math.pow(2,3)
//result is 8

We can also write a Loop solution as follows:

pow = (a, b) => {
let result = 1;
for(let i=0; i<b; i++){
result *=a;
}
return result;
}

alert(pow(2,3));
//result is 8
 

And then we can think in terms of recursion by doing the following:

pow = (a, b) => {
if(n==1){
return a;
}else{
return a * pow(a, b-1);
}
}

alert(pow(2,3));
//result is 8

Task: Sum all numbers till the given one.

E.g 5 = 1+2+3+4+5 = 15;

Using recursion, we would do the following

sumAll = (n) => {
if(n === 0){
return 0;
}else{
return n += sumAll(n-1);
}
}

alert(sumAll(5)) //15

There you go. you can start using recursion for your automated programming tasks.

Author

Recent Posts

Apple is developing a doorbell camera equipped with Face ID technology.

Apple is reportedly developing a new smart doorbell camera with Face ID technology to unlock…

10 hours ago

Google Launches Its Own ‘Reasoning’ AI Model to Compete with OpenAI

This month has been packed for Google as it ramps up efforts to outshine OpenAI…

3 days ago

You can now use your phone line to call ChatGPT when cellular data is unavailable.

OpenAI has been rolling out a series of exciting updates and features for ChatGPT, and…

4 days ago

Phishers use fake Google Calendar invites to target victims

A financially motivated phishing campaign has targeted around 300 organizations, with over 4,000 spoofed emails…

5 days ago

Hackers Exploiting Microsoft Teams to Remotely Access Users’ Systems

Hackers are exploiting Microsoft Teams to deceive users into installing remote access tools, granting attackers…

6 days ago

Ethical Hacking Essentials

Data plays an essential role in our lives.  We each consume and produce huge amounts…

1 week ago