Compute cartesian product of elements in an array in JavaScript


Cartesian Product

The Cartesian product of two sets (arrays) A and B, denoted A × B, is the set (array) of all ordered pairs (a, b) where a is in A and b is in B.

In simpler terms, a cartesian product of two arrays is a permutation of all possible arrays of two elements whose first element belongs to the first array and the second element belongs to the second array.

For example − If the two arrays are −

const arr1 = [1, 2, 3];
const arr2 = [4, 5];

Then their cartesian product will be −

const product = [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]];

Example

The code for this will be −

const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const cartesianProduct = (arr1, arr2) => {
   const res = [];
   for(let i = 0; i < arr1.length; i++){
      for(let j = 0; j < arr2.length; j++){
         res.push(
            [arr1[i]].concat(arr2[j])
         );
      };
   };
   return res;
};
console.log(cartesianProduct(arr1, arr2));

Output

And the output in the console will be −

[ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]

Updated on: 21-Nov-2020

821 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements