Heim > Web-Frontend > js-Tutorial > Wie kann man das kartesische Produkt mehrerer Arrays in JavaScript effizient berechnen?

Wie kann man das kartesische Produkt mehrerer Arrays in JavaScript effizient berechnen?

Mary-Kate Olsen
Freigeben: 2024-12-31 05:55:18
Original
959 Leute haben es durchsucht

How to Efficiently Calculate the Cartesian Product of Multiple Arrays in JavaScript?

Implementierung des kartesischen Produkts mehrerer Arrays in JavaScript

Das kartesische Produkt mehrerer Arrays umfasst jede mögliche Kombination von Elementen aus den Eingabearrays. Diese Operation ist wichtig, um alle möglichen Kombinationen oder Permutationen aus einem Datensatz zu generieren.

Die einzeilige Antwort (ES2020)

const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
Nach dem Login kopieren

Erklärung

Das kartesische Produkt wird im Folgenden berechnet Art und Weise:

  1. Reduzieren: Verwenden Sie diese Methode, um über jedes Array zu iterieren und sie zu kombinieren.
  2. flatMap: Reduzieren Sie das reduzierte Array um Kombinieren aller möglichen Kombinationen von Elementen aus zwei Eingabearrays.
  3. flach: Vereinfachen das verschachtelte Array durch Entfernen leerer Arrays oder Elemente.

Beispiel

Um das kartesische Produkt auf Arrays mit Werten anzuwenden, betrachten Sie das folgende Beispiel:

const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
Nach dem Login kopieren

Die erwartete Ausgabe ist:

[
  [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],
]
Nach dem Login kopieren

Dies zeigt die Berechnung aller möglichen Kombinationen von Elemente aus den angegebenen Arrays, was zu einem vollständigen kartesischen Produkt führt.

Das obige ist der detaillierte Inhalt vonWie kann man das kartesische Produkt mehrerer Arrays in JavaScript effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage