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

Wie kann ich das kartesische Produkt mehrerer Arrays in JavaScript berechnen?

Mary-Kate Olsen
Freigeben: 2024-12-15 14:10:22
Original
148 Leute haben es durchsucht

How Can I Calculate the Cartesian Product of Multiple Arrays in JavaScript?

Das kartesische Produkt mehrerer Arrays in JavaScript

JavaScript bietet eine einfache Möglichkeit, das kartesische Produkt mehrerer Arrays zu bestimmen. Das kartesische Produkt beinhaltet die Kombination von Elementen aus jedem Array, um ein neues Array zu bilden, was zu jeder möglichen Kombination führt.

Bei gegebenen Arrays [1, 2] und [10, 20] wäre das kartesische Produkt beispielsweise: [[1, 10], [1, 20], [2, 10], [2, 20]].

1-Zeilen-Lösung mit modernem JavaScript (ECMAScript 2020):

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

Tieferes Eintauchen in die Lösung:

Diese Lösung nutzt zwei wichtige JavaScript-Funktionen:

  1. Spread Operator (. ..): Dieser Operator wird verwendet, um die Arrays in separate Argumente aufzuteilen, sodass sie als an eine Funktion übergeben werden können Parameter.
  2. Array.reduce(...): Es wird verwendet, um die Arrays rekursiv zu kombinieren, wobei jeder Schritt Folgendes ausführt:

    • Reduziert das aktuelle Ergebnisarray mithilfe der flatMap()-Methode.
    • Iteriert über das nächste Array.
    • Hängt jedes Element aus dem nächsten Array an das reduzierte Ergebnis an.
    • Reduziert das Ergebnis erneut.

Beispiel:

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

Dies würde Folgendes ergeben:

[[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

JavaScript wird fortgesetzt Weiterentwicklung und die in ECMAScript 2020 eingeführten neuen Funktionen ermöglichen es uns, prägnanteren und effizienteren Code zu schreiben. Diese verbesserte Lösung demonstriert die Leistungsfähigkeit von modernem JavaScript für komplexe Probleme.

Das obige ist der detaillierte Inhalt vonWie kann ich das kartesische Produkt mehrerer Arrays in JavaScript 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