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
Mary-Kate OlsenOriginal
2024-12-15 14:10:22144Durchsuche

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())));

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]);

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

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!

Stellungnahme:
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