IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Produit Cart�sien de n Array


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par d�faut Produit Cart�sien de n Array
    Bonjour � tous,

    J'aimerai savoir si quelqu'un sait comment je pourrais faire pour g�n�rer le produits Cart�siens de n Array.

    Je m'explique:

    J'aimerai dresser la listes de toutes les combinaisons possibles entre ces n Array.

    Exemple:

    • Array1 : [A,B,C]
    • Array2: [1,2,3,4]


    Resultat:
    • A-1
    • A-2
    • A-3
    • A-4
    • B-1
    • B-2
    • B-3
    • B-4
    • C-1
    • C-2
    • C-3
    • C-4


    J'ai essay� avec de la r�cursivit� mais mon niveau en javascript n'est pas super.

    Donc si quelqu'un aurait une solution, ce serait gentil de me donner un petit coup de pouce

    Merci d'avance.

    xenogaz

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par d�faut
    Bonsoir,

    Tu as essay� les boucles imbriqu�es ?

    Quelque chose comme ceci devrait fonctionner :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <!DOCTYPE html>
    <html>
      <head>
        <script type="text/javascript">
          var init = function() {
            var array1 = ['A', 'B', 'C'];
            var array2 = ['1', '2', '3', '4'];
            var result = document.getElementById('result');
     
            for (var i = 0; i < array1.length; i++) {
              for (var j = 0; j < array2.length; j++) {
                var text = document.createTextNode(array1[i] + '-' + array2[j]);
                var paragraph = document.createElement('li');
                paragraph.appendChild(text);
                result.appendChild(paragraph);
              }
            }
          }
        </script>
      </head>
      <body onload="init()">
        <ul id="result"></ul>
      </body>
    </html>
    Bon d�veloppement

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par d�faut
    Oui j'ai essayer sauf que la tu est bloquer � deux array ...
    et il faudrait que l'on puisse en d�finir une infinit� enfin dans les limites du raisonnable...

    J'ai essayer d'impl�menter de la r�cursivit� dans ma fonctions mais rien n'y fait ... :/

  4. #4
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Bonsoir !

    Je vais essayer de rassembler mes lointains souvenirs de Scheme� Il faudrait que tes tableaux soient eux-m�mes dans un tableau, du style :
    Code JS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var array1 = ['A', 'B'; 'C'];
    …
    var arrays = [array1, array2, array3, …]
    Ensuite bah, on garde la fonction de Nesmontou, qui sera le cas terminal de la r�cursion (quand il ne reste que 2 tableaux), et on tente le truc magique qui transforme n en n-1.

    Je te laisse chercher jusqu'� demain
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  5. #5
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par d�faut
    Re,

    Tu pourrais nous montrer ce que tu as d�j� mis en place ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par d�faut
    je ne peux pas vous filer mes anciennes sources vu que j'ai tout remodifier et que je travaille sur des arrays deja rempli en recup�rant des input hidden donc en soit ca serait illisibles ici....

    C'est pour cela que j'ai simplifi� pour le post.

  7. #7
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    Bonsoir

    Sauf erreur, on peut simplifier et g�n�raliser comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    var tr = function(t1, t2){
    	var t1L = t1.length;
    	var t2L = t2.length;
    	var t3 = [];
     
    	for (var i = 0; i < t1L; i++) {
    		for (var j = 0; j < t2L; j++) {
    			t3.push(t1[i] + '-' + t2[j]);
    		}
    	}
     
    	return t3;
    }
     
    var t1 = [ 'A', 'R', 'D', 'V', '10', '9', '8', '7', '6', '5', '4', '3', '2' ];
    var t2 = [ 'pique', 'cœur', 'carreau', 'trèfle'];
    var t3 = [ 'a', 'b', 'c', 'd', 'e'];
    var t4 = [ '01', '02', '03', '04', '05'];
     
    var r = [];
     
    r.push(tr(tr(tr(t1,t2),t3),t4));
     
    console.log(r.join());
    [EDIT 2010-10-22 09:20] En moins verbeux, je devais �tre fatigu� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    var tr = function(t1, t2){
    	var t3 = [];
     
    	for (var i in t1) {
    		for (var j in t2) {
    			t3.push(t1[i] + '-' + t2[j]);
    		}
    	}
     
    	return t3;
    }
     
    var ts = [
    	[ 'A', 'R', 'D', 'V', '10', '9', '8', '7', '6', '5', '4', '3', '2' ],
    	[ 'pique', 'cœur', 'carreau', 'trèfle'],
    	[ 'a', 'b', 'c', 'd', 'e'],
    	[ '01', '02', '03', '04', '05']
    ];
     
    var r = [];
     
    r.push(tr(tr(tr(ts[0],ts[1]),ts[2]),ts[3]));
     
    console.log(r.join());

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  8. #8
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    La version finale :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    var tr = function(t1, t2){
    	var t3 = [];
     
    	for (var i in t1) {
    		for (var j in t2) {
    			t3.push(t1[i] + '-' + t2[j]);
    		}
    	}
     
    	return t3;
    }
     
    var ts = [
    	[ 'A', 'R', 'D', 'V', '10', '9', '8', '7', '6', '5', '4', '3', '2' ],
    	[ 'pique', 'cœur', 'carreau', 'trèfle'],
    	[ 'a', 'b', 'c', 'd', 'e'],
    	[ '01', '02', '03', '04', '05']
    ];
     
    var tslength = ts.length;
     
    if (tslength >= 2){
    	var r = tr(ts[0], ts[1]);
     
    	for (var n = 2; n < tslength; n++){
    		r = tr(r, ts[n]);
    	}
     
    	console.log(r.join());
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par d�faut
    Waow alors l�, �� envoie du poney!!

    Merci beaucoup , la j'avoue que sur ce coup je suis totalement d�passer merci!

    Je m'en vais de se pas l'adapter pour mon dev

Discussions similaires

  1. [JavaScript] Produit cart�sien de n array
    Par danielhagnoul dans le forum Contribuez
    R�ponses: 1
    Dernier message: 10/10/2015, 11h13
  2. Obtenir un produit cart�sien
    Par pc75 dans le forum Excel
    R�ponses: 10
    Dernier message: 07/04/2014, 08h51
  3. Produit cart�sien au lieu d'une jointure
    Par Smix007 dans le forum D�buter
    R�ponses: 1
    Dernier message: 17/04/2008, 14h50
  4. [V 6.5.1] Produit cart�sien
    Par pc75 dans le forum Deski
    R�ponses: 7
    Dernier message: 10/07/2007, 10h17
  5. R�ponses: 10
    Dernier message: 12/07/2006, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo