Finding All Combinations (Cartesian product) of JavaScript Array Values
Producing all combinations of values from multiple arrays in JavaScript can be achieved through the concept of Cartesian product. Here's how you can approach it:
Recursion for Cartesian Product
To generate all combinations, we can use a recursive function that iterates through each array and combines elements from all arrays.
Here's an example of a recursive function that finds the Cartesian product of multiple arrays:
function allPossibleCases(arr) {<br> if (arr.length == 1) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">return arr[0];
} else {
var result = []; var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array for (var i = 0; i < allCasesOfRest.length; i++) { for (var j = 0; j < arr[0].length; j++) { result.push(arr[0][j] + allCasesOfRest[i]); } } return result;
}
}
Usage Example
Let's say you have three arrays:
var first = ['a', 'b'],<br>var second = ['c'],<br>var third = ['d', 'e', 'f'];
Using the allPossibleCases function, you can generate all combinations as follows:
var allArrays = [first, second, third];<br>console.log(allPossibleCases(allArrays));
acd ace acf bcd bce bcf azd aze azf bzd bze bzf
Note: The order of elements in each combination may vary depending on the order of arrays in the allArrays variable.
The above is the detailed content of How to Generate All Combinations (Cartesian Product) of Values from JavaScript Arrays?. For more information, please follow other related articles on the PHP Chinese website!