Différentes combinaisons d'attributs

Signaler
Messages postés
2
Date d'inscription
jeudi 12 février 2004
Statut
Membre
Dernière intervention
10 octobre 2006
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

J'ai un tableau d'objets donc les objets sont construits de la façon suivante :
function AttributesValues(attributeid, attribute, valueid, value) {

    this.attributeid=attributeid;

    this.attribute=attribute;

    this.valueid=valueid;

    this.value=value;

}


Mes objets sont par exemple :

AttributesValues ("2","Couleur","5","Bleu");


AttibutesValues ("2","Couleur","6","Rouge");


AttibutesValues ("2","Couleur","7","Noir");


AttibutesValues ("2","Couleur","8","Vert");


AttibutesValues ("3","Matière","9","Fer");

AttributesValues ("3","Matière","10","Or");


AttibutesValues ("3","Matière","11","Soie");


AttibutesValues ("13","Format","26","A2");


AttibutesValues ("13","Format","25","A3");


Je voudrais récupérer les différentes combinaisons possibles d'attributs (dans le cas ci-dessus Couleur/Matière/Format)


Je n'ai aucune idée de la manière dont je pourrai procéder. Quelqu'un pourrait me mettre sur la voie ?


Merci d'avance


Guilb

1 réponse

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
B

onjour...

Ce que je vois comme code me paraît insuffisant pour faire quelque chose néanmoins une façon de récupérer les info peut ce faire comme suit...

Supposons que l'on ai

var Objet l'objet tableau  de Attributesvalues

pour récupérer on peut faire
//-----------------------------
function Recup_Liste_Attribut(){
  var T_Resultat = new Array();
  var szTmp = "";    // chaine vide pour commencer
  var i;                 // Compteur pour Objet
  var k;                // Compteur pour T_Resultat;  for( i 0, k 0; i < Obj;length; i++){
     szTmp  = Objet.attribute[i];
    //-- Parcourt le tableau pour voir si déjà pris en compte
     bExiste = false;
     for( k = 0; k < T_Result.length; k++){
       if( T_Result[k] == szTmp)
         bExiste= true;
     }
    if( !bExiste)                 // Donc pas trouvé on ajoute
      T_Result[k] = szTmp; // Ici k vaut T_Result.length donc rajout à la fin
  }

  alert( T_Result); // par exemple pour voir le résultat
  return( T_Result);
}

Ceci est un bestial exemple...



;0)