Recursion is the purest form of coding; write a function that will call itself until you get what you want. To implement recursion we will create a helper algorithm: Identify what the smallest input is. Continually break down a larger input into smaller inputs and pass those smaller inputs back into itself. Define a "base case" that will stop the Recursion should the answer not be found. This is why creating a base case is essential to prevent an infinite loop. JavaScript is LIFO (last in first out call by call until the answer is found)