Maison > interface Web > js tutoriel > Comment puis-je générer efficacement des produits cartésiens de tableaux en JavaScript ?

Comment puis-je générer efficacement des produits cartésiens de tableaux en JavaScript ?

Patricia Arquette
Libérer: 2024-12-16 07:13:10
original
672 Les gens l'ont consulté

How Can I Efficiently Generate Cartesian Products of Arrays in JavaScript?

Génération de produits cartésiens de tableaux en JavaScript

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.

Solution 2020 optimisée

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())));
Copier après la connexion

Exemple d'utilisation

Pour illustrer, Considérons l'exemple fourni dans votre question :

const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
Copier après la connexion

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

Conclusion

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!

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