Maison > interface Web > js tutoriel > Comment générer toutes les combinaisons possibles de valeurs de tableau en JavaScript ?

Comment générer toutes les combinaisons possibles de valeurs de tableau en JavaScript ?

Linda Hamilton
Libérer: 2024-11-04 02:45:29
original
247 Les gens l'ont consulté

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

Produit cartésien : génération de combinaisons de valeurs de tableau en JavaScript

Description du problème :

Donné un nombre arbitraire de tableaux JavaScript, comment calculer le produit cartésien de leurs éléments, générant efficacement toutes les combinaisons possibles de leurs valeurs ?

Solution :

Bien que ce problème puisse ressembler à une permutation, il s'agit d'une tâche classique impliquant le produit cartésien. En utilisant la récursivité, nous pouvons implémenter un algorithme pour y parvenir :

  1. Définir une liste d'entrée de tableaux :

    <code class="js">var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']];</code>
    Copier après la connexion
  2. Créer un allPossibleCases récursif fonction :

    <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>
    Copier après la connexion
  3. Instancier le allPossibleCases fonctionne avec la liste d'entrée des tableaux et imprime les résultats :

    console.log(allPossibleCases(allArrays));
    Copier après la connexion

Sortie :

Ce code affichera toutes les combinaisons possibles de les valeurs dans les tableaux d'entrée, au format suivant :

["acd", "bcd", "azd", "bzd", "ace", "bce", "aze", "bze", "acf", "bcf", "azf", "bzf"]
Copier après la connexion

Cet algorithme génère efficacement le produit cartésien de les tableaux fournis, apportant une solution au problème de la création de combinaisons exhaustives de leurs éléments.

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