Produit cartésien : génération de combinaisons de valeurs de tableau en JavaScript
Description du problème :
Donné un nombre arbitraire de tableaux JavaScript, comment calculer le produit cartésien de leurs éléments, générant efficacement toutes les combinaisons possibles de leurs valeurs ?
Solution :
Bien que ce problème puisse ressembler à une permutation, il s'agit d'une tâche classique impliquant le produit cartésien. En utilisant la récursivité, nous pouvons implémenter un algorithme pour y parvenir :
Définir une liste d'entrée de tableaux :
<code class="js">var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']];</code>
Créer un allPossibleCases récursif fonction :
<code class="js">function allPossibleCases(arr) { if (arr.length === 1) { return arr[0]; } else { var result = []; var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array for (var i = 0; i < arr[0].length; i++) { for (var j = 0; j < allCasesOfRest.length; j++) { result.push(arr[0][i] + allCasesOfRest[j]); } } return result; } }</code>
Instancier le allPossibleCases fonctionne avec la liste d'entrée des tableaux et imprime les résultats :
console.log(allPossibleCases(allArrays));
Sortie :
Ce code affichera toutes les combinaisons possibles de les valeurs dans les tableaux d'entrée, au format suivant :
["acd", "bcd", "azd", "bzd", "ace", "bce", "aze", "bze", "acf", "bcf", "azf", "bzf"]
Cet algorithme génère efficacement le produit cartésien de les tableaux fournis, apportant une solution au problème de la création de combinaisons exhaustives de leurs éléments.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!