Das Berechnen des kartesischen Produkts mehrerer Arrays ist eine häufige Aufgabe in der Programmierung. Dabei werden Elemente aus jedem Array kombiniert, um neue Arrays zu erstellen, die alle möglichen Kombinationen enthalten. Um dies in JavaScript zu erreichen, können wir verschiedene Ansätze anwenden.
Ein einfacher, aber veralteter Ansatz erfordert die Iteration über jedes Array und die manuelle Generierung aller möglichen Kombinationen. Allerdings wird diese Methode bei großen Datensätzen ineffizient. Stattdessen können wir fortschrittliche Techniken in ES6 und ES2019 nutzen, um den Prozess deutlich zu vereinfachen.
Mit der Einführung von flatMap in ES2019 können wir die kartesische Produktberechnung auf ein einziges reduzieren prägnante Codezeile:
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
An Zur Veranschaulichung betrachten wir das in Ihrer Frage bereitgestellte Beispiel:
const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
Dieser Befehl generiert das folgende kartesische Produkt:
[ [ 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 ] ]
Durch die Nutzung moderner JavaScript-Funktionen Wir können komplexe Aufgaben wie kartesische Produktberechnungen mit bemerkenswerter Leichtigkeit bewältigen. Ganz gleich, ob es um die Entwicklung von Algorithmen oder die Datenmanipulation geht, diese Techniken ermöglichen es Entwicklern, effizienter und eleganter zu programmieren.
Das obige ist der detaillierte Inhalt vonWie kann ich in JavaScript effizient kartesische Produkte von Arrays generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!