Heim >Web-Frontend >js-Tutorial >Wie generiere ich alle möglichen Kombinationen von Array-Werten in JavaScript?

Wie generiere ich alle möglichen Kombinationen von Array-Werten in JavaScript?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 02:45:29246Durchsuche

How to Generate All Possible Combinations of Array Values in JavaScript?

Kartesisches Produkt: Generieren von Kombinationen von Array-Werten in JavaScript

Problembeschreibung:

Gegeben eine beliebige Anzahl von JavaScript-Arrays, wie berechnen wir das kartesische Produkt ihrer Elemente und generieren effektiv alle möglichen Kombinationen ihrer Werte?

Lösung:

Während dieses Problem mag einer Permutation ähneln, es ist eine klassische Aufgabe, bei der es um das kartesische Produkt geht. Mithilfe der Rekursion können wir einen Algorithmus implementieren, um dies zu erreichen:

  1. Definieren Sie eine Eingabeliste von Arrays:

    <code class="js">var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']];</code>
  2. Erstellen Sie ein rekursives allPossibleCases Funktion:

    <code class="js">function allPossibleCases(arr) {
      if (arr.length === 1) {
        return arr[0];
      } else {
        var result = [];
        var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
        for (var i = 0; i < arr[0].length; i++) {
          for (var j = 0; j < allCasesOfRest.length; j++) {
            result.push(arr[0][i] + allCasesOfRest[j]);
          }
        }
        return result;
      }
    }</code>
  3. Instanziieren Sie die allPossibleCases-Funktion mit der Eingabeliste von Arrays und drucken Sie die Ergebnisse aus:

    console.log(allPossibleCases(allArrays));

Ausgabe:

Dieser Code gibt alle möglichen Kombinationen der Werte in den Eingabearrays im folgenden Format aus:

["acd", "bcd", "azd", "bzd", "ace", "bce", "aze", "bze", "acf", "bcf", "azf", "bzf"]

Dieser Algorithmus generiert effizient das kartesische Produkt der bereitgestellten Werte Arrays, die eine Lösung für das Problem der Erstellung umfassender Kombinationen ihrer Elemente bieten.

Das obige ist der detaillierte Inhalt vonWie generiere ich alle möglichen Kombinationen von Array-Werten in JavaScript?. 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