Kartesisches Produkt von JavaScript-Arraywerten
Problem:
Gegeben eine beliebige Anzahl von JavaScript Arrays unterschiedlicher Länge ermitteln alle Kombinationen (kartesisches Produkt) ihrer Werte.
Lösung:
Diese Aufgabe kann durch Rekursion effizient gelöst werden. Dabei geht es darum, jedes Array zu durchlaufen und seine Werte mit allen möglichen Kombinationen der verbleibenden Arrays zu kombinieren.
Betrachten Sie die folgende Implementierung:
function allPossibleCases(arr) { if (arr.length === 1) { return arr[0]; } else { const result = []; const casesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of arr casesOfRest.forEach((c) => { for (let i = 0; i < arr[0].length; i++) { result.push(arr[0][i] + c); } }); return result; } }
Verwendung:
var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']]; var results = allPossibleCases(allArrays); // outputs ["acd", "bcd", "azd", ...]
Erklärung:
Das obige ist der detaillierte Inhalt vonWie erzeuge ich alle Kombinationen (kartesisches Produkt) von Werten in JavaScript-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!