Skip to content
JS
Recipe · Algorithms

How to Perform Factorialization in JavaScript

Published 23 Jun 20233 methods
Using a for loop
function factorial(n) {
 let result = 1;
 for (let i = 1; i <= n; i++) {
 result = result * i;
 }
 return result;
}

Other methods on this page: Using recursion, Using the reduce function

Using a for loop

The factorial of a number in JavaScript can be calculated using a ‘for’ loop by initializing a variable to 1 and then multiplying this variable with each number from 1 up to the concerned number. For example, the factorial of 5 (5!) would be 1*2*3*4*5 = 120.


function factorial(n) {
 let result = 1;
 for (let i = 1; i <= n; i++) {
 result = result * i;
 }
 return result;
}

How it works

The function 'factorial' takes an input 'n' and calculates the factorial of that number. It uses a 'for' loop to multiply each value from 1 to 'n' together, storing the result in the variable 'result'. After going through all the numbers, it returns the 'result' as the factorial of 'n'.

  • Firstly, a function named 'factorial' is declared that takes a number 'n' as input.
  • Inside the function, a variable 'result' is initialized to 1. This will hold the final factorial of the number 'n'.
  • A 'for' loop is started which runs from 1 to 'n'. The loop counter 'i' is incremented by 1 in each iteration.
  • In each iteration of the 'for' loop, 'result' is multiplied by 'i' and the product is stored back in 'result'.
  • Once the loop has run 'n' times, which means it has multiplied all numbers from 1 to 'n' together, the final value of 'result' is the factorial of 'n'.
  • Finally, the function returns 'result', giving us the factorial of the input number 'n'.

Using recursion

We will use the concept of recursion where a function calls itself until it reaches the base case, which in the case of factorialization is when the number reaches 1 or 0.

For example, the factorial of 5 (denoted as 5!) is the product of all positive integers from 1 to 5, which equals 120. This can be represented recursively as follows: 5! = 5 * 4!, and so on until we reach the base case, 1! = 1.

Now, let's look at the code:


function factorial(n){
 if(n == 0 || n == 1){
 return 1;
 }
 else{
 return n * factorial(n - 1);
 }
}

How it works

In this code, we define a function factorial(n) that computes the factorial of a number n. The function uses recursion, where the function calls itself until it reaches the base case.

Here's a step-by-step explanation:

  • The function factorial(n) is defined and takes in an argument n, which is the number we want to find the factorial of.
  • A conditional if statement checks if the value of n is 0 or 1, which are our base cases. If n is either 0 or 1, the function returns 1 because the factorial of 0 and 1 is 1.
  • If n is neither 0 nor 1, the function returns the product of n and the factorial of n-1. This is the recursive call where the function calls itself.
  • The recursion continues until the base case is reached, and the product of all numbers from n down to 1 is returned as the result.
  • Thus, the function factorial(n) calculates the factorial of a number n using recursion.

Using the reduce function

The factorial of a number is found by multiplying that number by each number below it until reaching 1. For example, the factorial of 5 (5!) is 5 * 4 * 3 * 2 * 1 = 120. In JavaScript, we can utilize the reduce method to achieve this functionality in a more elegant and functional way.

Here is the JavaScript code to perform factorialization using the reduce function:


function factorialize(num) {
 return Array.from({length: num}, (v, k) => k+1).reduce((a, b) => a * b, 1);
}

How it works

This function first creates an array with a length of the input number. It then fills this array with the numbers from 1 up to and including the input number. Finally, it uses the reduce function to multiply all of these numbers together.

Here is a step-by-step explanation:

  • First, it uses Array.from() to create an array of a specific length. The length of this array is based on the input number.
  • Second, it uses a mapping function (v, k) => k+1 to fill this array with numbers from 1 to num. k is the current key/index of the array element that we're processing and v is its value. Since we're interested in filling the array with numbers from 1 to num, we just return k+1.
  • Third, it uses reduce() to perform the factorial operation. reduce() takes in a reducer function and an initial value. The reducer function (a, b) => a * b receives two arguments: a is the accumulator that keeps track of the intermediate result, and b is the current element being processed in the array. The initial value is 1 because the multiplication of any number by 1 remains the same.
  • Finally, it returns the result of the reduce() operation, which is the factorial of the input number.

In wrapping up, understanding how to perform factorialization in JavaScript is a valuable skill. It allows you to carry out complex mathematical operations, enhancing your problem-solving capabilities.

Remember, JavaScript is a robust language with immense capabilities. So, keep practicing and exploring its different functionalities to improve your coding abilities.