Heim >Web-Frontend >js-Tutorial >Wie generiere ich alle möglichen Kombinationen von Array-Werten in JavaScript?
Kartesisches Produkt: Generieren von Kombinationen von Array-Werten in JavaScript
Problembeschreibung:
Gegeben eine beliebige Anzahl von JavaScript-Arrays, wie berechnen wir das kartesische Produkt ihrer Elemente und generieren effektiv alle möglichen Kombinationen ihrer Werte?
Lösung:
Während dieses Problem mag einer Permutation ähneln, es ist eine klassische Aufgabe, bei der es um das kartesische Produkt geht. Mithilfe der Rekursion können wir einen Algorithmus implementieren, um dies zu erreichen:
Definieren Sie eine Eingabeliste von Arrays:
<code class="js">var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']];</code>
Erstellen Sie ein rekursives allPossibleCases Funktion:
<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>
Instanziieren Sie die allPossibleCases-Funktion mit der Eingabeliste von Arrays und drucken Sie die Ergebnisse aus:
console.log(allPossibleCases(allArrays));
Ausgabe:
Dieser Code gibt alle möglichen Kombinationen der Werte in den Eingabearrays im folgenden Format aus:
["acd", "bcd", "azd", "bzd", "ace", "bce", "aze", "bze", "acf", "bcf", "azf", "bzf"]
Dieser Algorithmus generiert effizient das kartesische Produkt der bereitgestellten Werte Arrays, die eine Lösung für das Problem der Erstellung umfassender Kombinationen ihrer Elemente bieten.
Das obige ist der detaillierte Inhalt vonWie generiere ich alle möglichen Kombinationen von Array-Werten in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!