Open In App

How to cartesian product of 2 arrays using JavaScript ?

Last Updated : 25 Jul, 2023
Improve
Improve
Like Article
Like
Save
Share
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]



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads