Heim > Web-Frontend > js-Tutorial > Wie generiert man in JavaScript alle möglichen Kombinationen aus N Arrays mit jeweils M Elementen?

Wie generiert man in JavaScript alle möglichen Kombinationen aus N Arrays mit jeweils M Elementen?

Patricia Arquette
Freigeben: 2024-11-30 16:27:11
Original
925 Leute haben es durchsucht

How to Generate All Possible Combinations from N Arrays with M Elements Each in JavaScript?

Erzeugen von Kombinationen aus N Arrays mit M Elementen in JavaScript [Duplikat]

Einführung
Das Kombinieren von Elementen aus mehreren Arrays kann zu zahlreichen Kombinationen führen , die bei statistischen Analysen oder kombinatorischen Problemen oft unerlässlich sind. Dieser Artikel stellt eine umfassende Lösung in JavaScript vor, um alle möglichen Kombinationen aus N Arrays zu generieren, die jeweils M Elemente enthalten.

Rekursiver Ansatz
Die bereitgestellte Lösung verwendet eine rekursive Hilfsfunktion zum Erstellen von Kombinationen schrittweise. Die Funktion durchläuft jedes Array, einschließlich seiner Elemente in der resultierenden Kombination. Wenn das aktuelle Array das letzte ist, wird die vollständige Kombination zum Ergebnisarray hinzugefügt. Andernfalls führt die Funktion eine Rekursion mit der aktualisierten Kombination durch und fährt mit dem nächsten Array fort.

Implementierung

function cartesian(...args) {
    var r = [], max = args.length - 1;
    function helper(arr, i) {
        for (var j = 0, l = args[i].length; j < l; j++) {
            var a = arr.slice(0); // clone arr
            a.push(args[i][j]);
            if (i == max)
                r.push(a);
            else
                helper(a, i + 1);
        }
    }
    helper([], 0);
    return r;
}
Nach dem Login kopieren

Verwendung
Zum Generieren Um Kombinationen aus einer Liste von Arrays zu erhalten, übergeben wir die Arrays als Argumente an den Kartesianer Funktion.

cartesian([0, 1], [0, 1, 2, 3], [0, 1, 2]);
Nach dem Login kopieren

Das Ergebnis ist ein Array, das alle möglichen Kombinationen enthält:

[
  [0, 0, 0],
  [0, 0, 1],
  [0, 0, 2],
  [0, 1, 0],
  [0, 1, 1],
  [0, 1, 2],
  [0, 2, 0],
  [0, 2, 1],
  [0, 2, 2],
  // ...
]
Nach dem Login kopieren

Hinweis
Wenn wir es vorziehen, ein Array von Arrays zu übergeben Anstelle einzelner Argumente können wir die Funktionssignatur in eine kartesische Funktion (Argumente) ändern.

Das obige ist der detaillierte Inhalt vonWie generiert man in JavaScript alle möglichen Kombinationen aus N Arrays mit jeweils M Elementen?. 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