Maison > interface Web > js tutoriel > Comment générer toutes les combinaisons à partir de plusieurs tableaux en JavaScript ?

Comment générer toutes les combinaisons à partir de plusieurs tableaux en JavaScript ?

Susan Sarandon
Libérer: 2024-12-01 14:03:11
original
551 Les gens l'ont consulté

How to Generate All Combinations from Multiple Arrays in JavaScript?

Générer des combinaisons à partir de plusieurs tableaux en JavaScript

En JavaScript, générer des combinaisons à partir de tableaux de différentes tailles peut être une tâche complexe. Explorons une solution utilisant une fonction d'assistance récursive.

Solution

La fonction cartésienne prend un nombre arbitraire de tableaux comme paramètres et renvoie un tableau de toutes les combinaisons possibles. Il utilise une fonction d'assistance récursive, helper, qui parcourt chaque élément d'un tableau et le pousse vers une version clonée de la combinaison actuelle. Si le tableau actuel n'est pas le dernier, il appelle récursivement helper pour générer toutes les combinaisons pour les tableaux restants.

La fonction cartésienne peut être utilisée comme suit :

cartesian([0,1], [0,1,2,3], [0,1,2]);
Copier après la connexion

Cela produira les combinaisons souhaitées :

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

Utilisation

Pour utiliser cette solution avec un tableau de tableaux, passez simplement le tableau comme paramètre unique de la fonction cartésienne. La fonction d'assistance parcourra automatiquement les tableaux imbriqués pour générer toutes les combinaisons possibles.

Exemple

var data = [[0,1], [0,1,2,3], [0,1,2]];
var combinations = cartesian(data);
Copier après la connexion

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