TLDR - Recursion in JavaScript

September 8, 2019

What is Recursion

Recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem.

Problem: Counting Vowels of a String

Not using Recursion

function isVowel(char) {
  return ["a", "e", "i", "o", "u"].includes(char);
}

function countVowels(str) {
  let count = 0;
  for (let i = 0; i < str.length; i++) {
    if (isVowel(str[i])) {
      count++;
    }
  }
  return count;
}

Using Recursion

function countVowels(str) {
  if (str.length == 0) return 0;
  let first = isVowel(str[0]) ? 1 : 0;
  return first + countVowels(str.slice(1));
}