Le calcul du produit cartésien de plusieurs tableaux est une tâche courante en programmation. Cela implique de combiner des éléments de chaque tableau pour créer de nouveaux tableaux contenant toutes les combinaisons possibles. Pour y parvenir en JavaScript, nous pouvons utiliser différentes approches.
Une approche simpliste mais obsolète nécessite d'itérer sur chaque tableau et de générer manuellement toutes les combinaisons possibles. Cependant, cette méthode devient inefficace pour les grands ensembles de données. Au lieu de cela, nous pouvons exploiter les techniques avancées d'ES6 et ES2019 pour simplifier considérablement le processus.
Avec l'introduction de flatMap dans ES2019, nous pouvons réduire le calcul du produit cartésien à un seul ligne de code concise :
const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
Pour illustrer, Considérons l'exemple fourni dans votre question :
const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
Cette commande génère le produit cartésien suivant :
[ [ 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 ] ]
En adoptant les fonctionnalités JavaScript modernes, nous pouvons abordez des tâches complexes telles que les calculs de produits cartésiens avec une facilité remarquable. Qu'il s'agisse de développement d'algorithmes ou de manipulation de données, ces techniques permettent aux développeurs de coder de manière plus efficace et plus élégante.
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!