Maison >interface Web >js tutoriel >Comment générer efficacement des produits cartésiens à partir de tableaux de longueurs variables en JavaScript ?
Pour générer toutes les combinaisons possibles d'éléments tirés d'un ensemble de tableaux de longueurs variables, les programmeurs JavaScript sont confrontés à un défi unique. Personnaliser une solution pour gérer un nombre dynamique de tableaux peut être délicat.
Une approche simple et efficace consiste à utiliser une fonction d'assistance récursive comme celle illustrée ci-dessous :
function cartesian(...args) { var r = [], max = args.length - 1; function helper(arr, i) { for (var j = 0, l = args[i].length; j < l; j++) { var a = arr.slice(0); // clone arr a.push(args[i][j]); if (i == max) r.push(a); else helper(a, i + 1); } } helper([], 0); return r; }
Pour l'utiliser fonction, transmettez simplement vos tableaux comme arguments :
cartesian([0, 1], [0, 1, 2, 3], [0, 1, 2]);
La sortie contiendra toutes les combinaisons possibles d'éléments à partir des éléments fournis arrays :
[ [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], ]
Pour un tableau de tableaux, ajustez la signature de la fonction sur la fonction cartésienne (args) au lieu d'utiliser les paramètres de repos. Cette approche permet de gérer n'importe quel nombre de tableaux avec un nombre d'éléments variable, offrant ainsi une solution flexible à ce problème combinatoire.
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!