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 :

affichage aléatoire des produits par ordre croissant.


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Par défaut affichage aléatoire des produits par ordre croissant.
    Bonjour à tous,

    Je souhaite résoudre un problème sur l'affichage des produits sélectionnés à mettre en avant. J'ai mis en place un algoritme en Javascript permettant d'afficher des produits de façon aléatoire et par ordre croissant de prix.

    Mon algorithme fonctionne très bien pour la sélection des produits de façon aléatoire. Mais par contre le trie par ordre croissant se fait une fois sur deux !

    Je vous montre le code que j'ai effectué pour sélectionner de façon aléatoire puis les classer par ordre croissant de numéro d'ordre (pour les prix ou autre chose)

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    //Selection aléatoire des produit
    function selectionProduits(nbSelections){
    	var nb_prod = tab_produits.length;
    	nb_selections = nbSelections;
    	produits_selectionnes = null;
    	produits_selectionnes = new Array();
    	tab_classes = null;
    	tab_classes = new Array();
    	if(nb_prod > nb_selections){
    		for(k=0;k<nbSelections;k++){
    			nb_aleatoire = Math.round((nb_prod -1)* Math.random());
    			if(nb_aleatoire<0)
    				nb_aleatoire=0;
    			while(tab_produits[nb_aleatoire].selectionne == 1){
    				if(nb_aleatoire < (nb_prod -1)){
    					nb_aleatoire++;
    				}else{
    					nb_aleatoire = 0;
    				}
    			}
    			produits_selectionnes[k] = tab_produits[nb_aleatoire]; 
    			tab_produits[nb_aleatoire].selectionne = 1;
    		}
     
    		for(ii = 0; ii < produits_selectionnes.length;ii++){
    			Min = 100000;
    			//J'affecte le porduit avec le numéro d'ordre le plus petit possible 
    			for( jj = 0; jj < produits_selectionnes.length; jj++){
     
    				if(produits_selectionnes[jj].selectionne == 1){
     
    					if(Min > produits_selectionnes[jj].num_ordre){
    						Min = produits_selectionnes[jj].num_ordre;
    						tab_classes[ii] = produits_selectionnes[jj];
     
    					}
    				}
    			}
    			///Sélection du produit avec le numéro d'ordre le plus petit
    			for(ll = 0; ll < produits_selectionnes.length; ll++){
    				if(produits_selectionnes[ll].selectionne == 1){
    					if(produits_selectionnes[ll].idProd == tab_classes[ii].idProd){
    						produits_selectionnes[ll].selectionne = 2;
    					}
    				}
    			}
    		}
     
     
    	}else{
    		for(k=0;k<nb_prod;k++){
    			produits_selectionnes[k] = tab_produits[k]; 
    			tab_produits[k].selectionne = 1;
    		}
    	}
     
    }

    Je voudrais savoir votre avis par rapport au code que j'ai fait.
    Qu'est ce qui fait que le trie par ordre croissant se fait une fois sur deux ?
    Une précision, le tableau d'objets javascript tab_produits est généré par l'intermédiaire d'ajax avec un numéro d'ordre affecté à chaque objet javascript .

    Cordialement.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    heu tu connais sort sur les array ?
    tu as réinventé l'eau tiède là non ?

    http://www.developpez.net/forums/d63...au-associatif/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Par défaut
    Merci, je vais essayer ce code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trier des combobox par ordre croissant et alphabétique
    Par floflo50100 dans le forum Excel
    Réponses: 6
    Dernier message: 09/04/2015, 15h31
  2. Tri par ordre croissant dans des TextBox
    Par neoph dans le forum VB.NET
    Réponses: 6
    Dernier message: 01/12/2012, 18h31
  3. algo qui affiche par ordre croissant des nombres
    Par jeremdu69300 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 18/09/2008, 23h16
  4. [SQL] Classement sql et affichage par ordre croissant
    Par Overstone dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/08/2007, 00h18
  5. [MySQL] Affichage des dates par ordre décroissant
    Par ash_rmy dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/03/2007, 13h01

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