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.


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"));
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
 
let blacklist = {
	"bonbon": [1,"Chine"],
	"bonbon": [1,"Vietnam"],
	"viande": [4,"Angleterre"],
	"lait": [2,"Chine"],
	"tomate": [4, "Egypte"]
}
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�.
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.