Bonjour � tous,
[INTRO]
J'avais fais un script simple et qui fonctionnait tr�s bien se basant sur les key=>value. Mon script n'a aucune pr�tention, il ne g�re pas de flux boursier, je suis � la base pas d�veloppeur JS mais le script fait bien le job.
Mais malheureusement je dois d�sormais introduit des key identiques et tout mon script tombe � l'eau.
Je sais pas comment le modifier, voir le refaire.
[DETAIL]
Le contexte �tant tr�s tr�s compliqu� � la base, je l'ai volontairement tr�s adapt� et simplifi� par soucis de compr�hension et d'une meilleur lisibilit�. On va donc parler ici de bonbon et de viande
Je poss�de une liste de produit � blacklister suivant des caract�ristiques sp�cifiques.
Il y a le "type" qui constitue la key ex:"bonbon". et la valeur associ�e : un code (non utilis� dans l'exemple mais normalement il l'ai) et l'origine (ex: Chine). (note: les string sont fortement norm�s)
Le principe est simple: Si on soumet un produit qui r�pond aux caract�ristiques, la fonction retourne true: il est blacklist�.Exemple le bonbon vient de chine, il est blacklist�.
Le code est tr�s simple. je regarde si il existe une key de la blacliste identique au type du produit donn�. Si oui, je teste si l'origine est identique.
Maleureusement, des nouvelles r�gles de blackliste viennent d'arriver. La voici:
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 let blacklist = { "bonbon": [1,"Chine"], "viande": [4,"Angleterre"], "lait": [2,"Chine"], "tomate": [4, "Egypte"] } function checkBlacklist(produit, origine) { if (blacklist.hasOwnProperty(produit)){ [codeBlacklisted, origineBlacklisted] = blacklist[produit]; if(origineBlacklisted == origine){ return true; } } return false; } console.log("blacklister ? " + checkBlacklist("bonbon", "chine"));
Vous voyez le probl�me. il y a 2 key identique. Le bonbon du vietnam �crase la regle du bonbon de chine, qui est alors plus d�tect�.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 let blacklist = { "bonbon": [1,"Chine"], "bonbon": [1,"Vietnam"], "viande": [4,"Angleterre"], "lait": [2,"Chine"], "tomate": [4, "Egypte"] }
Je ne peux toucher le champ "origine" qui ne peut contenir que un seul pays.
Mais je peux changer toute la structure de la blackliste tant qu'on modifie pas les donn�es (champ type, code et origine).
Si vous avez une id�e pour adapter mon script pour qu'il fonctionne de nouveau, je vous remercie par avance.
Partager