In der Mathematik ist das kartesische Produkt mehrerer Mengen die Menge aller möglichen geordnete Kombinationen von Elementen aus diesen Mengen. Beispielsweise ist das kartesische Produkt der Mengen [1, 2] und [10, 20, 300] {[1, 10], [1, 20], [1, 300], [2, 10], [2, 20], [2, 300] }.
1-Zeilen-JavaScript-Lösung (Update 2020)
Hier ist eine äußerst prägnante Lösung, die sich über nur eine einzige Zeile erstreckt und die Leistungsfähigkeit moderner JavaScript-Funktionen nutzt:
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
2-Zeilen-Vanille-JavaScript Lösung
Vor den 2020-Updates war dies die kürzeste Vanilla-JavaScript-Lösung:
let f = (a, b) => [].concat(...a.map(a => b.map(b => [].concat(a, b)))); let cartesian = (a, b, ...c) => b ? cartesian(f(a, b), ...c) : a;
Beachten Sie die Eingabearrays:
input = [1, 2], [10, 20], [100, 200, 300]
Um das kartesische Produkt zu berechnen, können wir das Kartesische aufrufen Funktion:
const output = cartesian(...input);
Die Ausgabevariable würde das erwartete kartesische Produkt enthalten:
[[1, 10, 100], [1, 10, 200], [1, 10, 300], [1, 20, 100], [1, 20, 200], [1, 20, 300], [2, 10, 100], [2, 10, 200], [2, 10, 300], [2, 20, 100], [2, 20, 200], [2, 20, 300]]
Das obige ist der detaillierte Inhalt vonWie berechnet man das kartesische Produkt mehrerer Arrays in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!