En mathématiques, le produit cartésien de plusieurs ensembles est l'ensemble de tous les possibles combinaisons ordonnées d’éléments de ces ensembles. Par exemple, le produit cartésien des ensembles [1, 2] et [10, 20, 300] est { [1, 10], [1, 20], [1, 300], [2, 10], [2, 20], [2, 300] }.
Solution JavaScript 1 ligne (mise à jour 2020)
Tirant parti de la puissance des fonctionnalités JavaScript modernes, voici une solution ultra-concise s'étendant sur une seule ligne :
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
Solution JavaScript Vanilla 2 lignes
Avant par rapport aux mises à jour 2020, il s'agissait de la solution JavaScript vanille la plus courte :
let f = (a, b) => [].concat(...a.map(a => b.map(b => [].concat(a, b)))); let cartesian = (a, b, ...c) => b ? cartesian(f(a, b), ...c) : a;
Considérez les tableaux d'entrée :
input = [1, 2], [10, 20], [100, 200, 300]
Pour calculer le produit cartésien, on peut invoquer la fonction cartésienne :
const output = cartesian(...input);
La variable de sortie contiendrait le cartésien attendu produit :
[[1, 10, 100], [1, 10, 200], [1, 10, 300], [1, 20, 100], [1, 20, 200], [1, 20, 300], [2, 10, 100], [2, 10, 200], [2, 10, 300], [2, 20, 100], [2, 20, 200], [2, 20, 300]]
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!