Open In App
Related Articles

How to cartesian product of 2 arrays using JavaScript ?

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

The task is to compute the cartesian product of two JavaScript arrays with the help of JavaScript. Here are a few techniques discussed. 

Approach 1:

  • Create a new array.
  • Traverse the first array by the outer loop and the second array by the inner loop.
  • In the inner loop, Concatenate the first array element with the second array element and push it into a new array.

Example: This example implements the above approach. 

Javascript

const arr1 = [
    [13, 'G'],
    [16, 'C']
];
 
const arr2 = [
    [8, 'F'],
    [36, 'P']
];
 
let res = "";
 
function CartesianProduct() {
    let ans = [];
    for (let i = 0; i < arr1.length; i++) {
        for (let j = 0; j < arr2.length; j++) {
            ans.push(arr1[i].concat(arr2[j]));
        }
    }
 
    res = "";
     
    for (let i = 0; i < ans.length; i++) {
        res = res + "[" + ans[i] + "]\n";
    }
    console.log(res);
}
 
CartesianProduct();

                    

Output
[13,G,8,F]
[13,G,36,P]
[16,C,8,F]
[16,C,36,P]

Approach 2:

  • Create a new array.
  • The same approach is followed here, for every element of the first array, every element of the second array is concatenated and pushed to the new array with the help of apply() and map() methods.

Example: This example implements the above approach.

Javascript

const arr1 = [
    [13, 'G'],
    [16, 'C']
];
 
const arr2 = [
    [8, 'F'],
    [36, 'P']
];
 
let res = "";
 
function CartesianProduct() {
    let ans = [].concat.apply([], arr1.map(
        arr1 => (arr2.map(arr2 => arr1.concat(arr2)))));
 
    res = "";
 
    for (let i = 0; i < ans.length; i++) {
        res = res + "[" + ans[i] + "]\n";
    }
    console.log(res);
}
 
CartesianProduct();

                    

Output
[13,G,8,F]
[13,G,36,P]
[16,C,8,F]
[16,C,36,P]



Last Updated : 25 Jul, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads