Maison > interface Web > js tutoriel > le corps du texte

Comment générer toutes les combinaisons de valeurs de tableau JavaScript à l'aide de la récursion ?

Patricia Arquette
Libérer: 2024-11-03 22:11:02
original
495 Les gens l'ont consulté

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

Recherche de toutes les combinaisons (produit cartésien) de valeurs de tableau JavaScript

Pour déterminer toutes les combinaisons de valeurs dans un ensemble de tableaux JavaScript, nous employons récursivité. Contrairement aux permutations, ce processus cherche à combiner des éléments sur plusieurs tableaux plutôt que de réorganiser les éléments dans un seul tableau.

Voici une solution récursive qui génère le produit cartésien des tableaux donnés :

<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>
Copier après la connexion

Par exemple, étant donné les tableaux d'entrée :

<code class="js">var first = ['a', 'b', 'c', 'd'];
var second = ['e'];
var third = ['f', 'g', 'h', 'i', 'j'];</code>
Copier après la connexion

La fonction allPossibleCases produirait les combinaisons suivantes :

aef
aeg
aeh
aei
aej
bef
beg
Copier après la connexion

... et ainsi de suite, produisant toutes les combinaisons possibles d'éléments du trois tableaux d'entrée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal