Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie generiert man alle Kombinationen von JavaScript-Array-Werten mithilfe der Rekursion?

Patricia Arquette
Freigeben: 2024-11-03 22:11:02
Original
495 Leute haben es durchsucht

How to Generate All Combinations of JavaScript Array Values Using Recursion?

Ermitteln aller Kombinationen (kartesisches Produkt) von JavaScript-Array-Werten

Um alle Kombinationen von Werten in einem Satz von JavaScript-Arrays zu ermitteln, verwenden wir Rekursion. Im Gegensatz zu Permutationen versucht dieser Prozess, Elemente über mehrere Arrays hinweg zu kombinieren, anstatt Elemente innerhalb eines einzelnen Arrays neu anzuordnen.

Hier ist eine rekursive Lösung, die das kartesische Produkt der gegebenen Arrays generiert:

<code class="js">function allPossibleCases(arr) {
  if (arr.length === 0) {
    return [];
  } else if (arr.length === 1) {
    return arr[0];
  } else {
    var result = [];
    var allCasesOfRest = allPossibleCases(arr.slice(1));
    for (var i = 0; i < allCasesOfRest.length; i++) {
      for (var j = 0; j < arr[0].length; j++) {
        result.push(arr[0][j] + allCasesOfRest[i]);
      }
    }
    return result;
  }
}</code>
Nach dem Login kopieren

Wenn beispielsweise die Eingabearrays gegeben sind:

<code class="js">var first = ['a', 'b', 'c', 'd'];
var second = ['e'];
var third = ['f', 'g', 'h', 'i', 'j'];</code>
Nach dem Login kopieren

Die allPossibleCases-Funktion würde die folgenden Kombinationen ausgeben:

aef
aeg
aeh
aei
aej
bef
beg
Nach dem Login kopieren

... und so weiter und so alle möglichen Kombinationen von Elementen aus erzeugen drei Eingabearrays.

Das obige ist der detaillierte Inhalt vonWie generiert man alle Kombinationen von JavaScript-Array-Werten mithilfe der Rekursion?. 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