-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
80 lines (72 loc) · 2.25 KB
/
script.js
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
78
79
80
let fabrics = {};
fetch('fabrics.json')
.then(response => response.json())
.then(data => {
fabrics = data;
loadQuestion(); // Start the quiz by loading the first question
})
.catch(error => console.error('An error occurred while fetching the fabrics data:', error));
let currentQuestionIndex = 0;
const userAnswers = {};
const questions = [
{
question: 'Which season?',
options: ['Cold', 'Warm', 'Any Season']
},
{
question: 'Is it supposed to be breathable?',
options: ['yes', 'no']
},
{
question: 'Can it cause irritation for people with sensitive skin?',
options: ['yes', 'no']
},
{
question: 'Cost bracket?',
options: ['$', '$$', '$$$']
},
{
question: 'Is it sustainable?',
options: ['yes', 'no']
}
];
// Function to load a question
function loadQuestion() {
if (currentQuestionIndex < questions.length) {
const questionContainer = document.getElementById('question-container');
const questionData = questions[currentQuestionIndex];
questionContainer.innerHTML = `
<h2>${questionData.question}</h2>
${questionData.options.map(option => `<button onclick="selectAnswer('${option}');">${option}</button>`).join('')}
`;
} else {
calculateResults();
}
}
// Function to handle the selection of an answer
function selectAnswer(answer) {
const key = Object.keys(fabrics["Wool"])[currentQuestionIndex]; // Using "Wool" as a representative fabric for structure
userAnswers[key] = answer;
currentQuestionIndex++;
loadQuestion();
}
// Function to calculate and display the results
function calculateResults() {
const container = document.getElementById('result-container');
const scores = Object.keys(fabrics).map(fabric => {
return {
name: fabric,
score: Object.keys(userAnswers).reduce((score, key) => {
if (fabrics[fabric][key] === userAnswers[key]) {
return score + 1;
}
return score;
}, 0)
};
});
scores.sort((a, b) => b.score - a.score);
const topResults = scores.slice(0, 3);
container.innerHTML = `<h2>Top Fabrics:</h2><ul>${topResults.map(result => `<li>${result.name} (${result.score} points of correlation)</li>`).join('')}</ul>`;
}
// Start the quiz by loading the first question
loadQuestion();