-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
77 lines (65 loc) · 2.77 KB
/
script.js
File metadata and controls
77 lines (65 loc) · 2.77 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
document.addEventListener("DOMContentLoaded", () => {
fetch('ingredients.json')
.then(res => {
if (!res.ok) throw new Error('Erreur lors du chargement du JSON');
return res.json();
})
.then(data => {
const container = document.getElementById('ingredient');
container.innerHTML = '';
let totalScore = 0;
let count = 0;
const nutriMap = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
};
data.forEach(product => {
const box = document.createElement('div');
box.className = 'ingredient-box';
// Image de l'ingrédient
const img = document.createElement('img');
img.src = product.image_url;
img.alt = product.product_name;
// Nom
const name = document.createElement('h2');
name.textContent = product.product_name;
// Nutri-score individuel
const nutri = document.createElement('img');
let grade = product.nutriscore_grade && product.nutriscore_grade !== 'not-applicable'
? product.nutriscore_grade
: 'unknown';
nutri.src = `https://static.openfoodfacts.org/images/attributes/dist/nutriscore-${grade}.svg`;
nutri.alt = `Nutriscore ${grade}`;
// Incrémentation pour moyenne globale
if (nutriMap[grade]) {
totalScore += nutriMap[grade];
count++;
}
box.appendChild(img);
box.appendChild(name);
box.appendChild(nutri);
container.appendChild(box);
});
// Calcul Nutri-Score moyen
if (count > 0) {
const avgScore = totalScore / count;
let finalGrade = '';
if (avgScore < 1.5) finalGrade = 'a';
else if (avgScore < 2.5) finalGrade = 'b';
else if (avgScore < 3.5) finalGrade = 'c';
else if (avgScore < 4.5) finalGrade = 'd';
else finalGrade = 'e';
const globalNutri = document.getElementById('global-nutriscore');
const scoreImg = document.createElement('img');
scoreImg.src = `https://static.openfoodfacts.org/images/attributes/dist/nutriscore-${finalGrade}.svg`;
scoreImg.alt = `Nutriscore global: ${finalGrade}`;
globalNutri.appendChild(scoreImg);
}
})
.catch(err => {
console.error('Erreur de chargement des ingrédients :', err);
});
});