Maison > interface Web > js tutoriel > Comment calculer efficacement le produit cartésien de plusieurs tableaux en JavaScript ?

Comment calculer efficacement le produit cartésien de plusieurs tableaux en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-31 05:55:18
original
959 Les gens l'ont consulté

How to Efficiently Calculate the Cartesian Product of Multiple Arrays in JavaScript?

Implémentation du produit cartésien de plusieurs tableaux en JavaScript

Le produit cartésien de plusieurs tableaux comprend toutes les combinaisons possibles d'éléments des tableaux d'entrée. Cette opération est essentielle pour générer toutes les combinaisons ou permutations possibles à partir d'un ensemble de données.

La réponse en 1 ligne (ES2020)

const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
Copier après la connexion

Explication

Le produit cartésien est calculé de la manière suivante manière :

  1. Reduce : utilisez cette méthode pour parcourir chaque tableau et les combiner.
  2. flatMap : aplatissez le tableau réduit en combinant toutes les combinaisons possibles d'éléments de deux tableaux d'entrée.
  3. flat : Simplifier le tableau imbriqué en supprimant les tableaux ou éléments vides.

Exemple

Pour appliquer le produit cartésien sur des tableaux avec des valeurs, considérons l'exemple suivant :

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

Le résultat attendu est :

[
  [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

Ceci démontre le calcul de toutes les combinaisons possibles d'éléments à partir des tableaux donnés, ce qui donne un produit cartésien complet.

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