-
Notifications
You must be signed in to change notification settings - Fork 32
/
quiz.js
109 lines (93 loc) · 2.69 KB
/
quiz.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
const quizDiv = document.querySelector("#quizDiv");
const scoreDiv = document.querySelector("#scoreDiv");
const scoreDivH2 = document.querySelector("#scoreDiv h2");
const timer = document.querySelector(".timer");
const question = document.querySelector(".question");
const options = document.querySelectorAll(".option");
const nextQuestion = document.querySelector("button");
let questionNumber = 0;
let counter = 10;
let id1, id2;
const userAnswers = [];
const data = [
{
question: "What is the your favourite city?",
answer: "New Delhi",
options: ["Jaipur", "Mumbai", "New Delhi", "Kolkata"],
},
{
question: "Which is the national bird of India?",
answer: "Peacock",
options: ["Sparrow", "Peacock", "Pigeon", "Crow"],
},
{
question: "Who won the 2024 Cricket T20 world cup??",
answer: "India",
options: ["Australia", "South Africa", "West Indies", "India"],
},
{
question: "Who is the president of India?",
answer: "Draupadi Murmu",
options: [
"APJ Abdul Kalam",
"Narendra Modi",
"Draupadi Murmu",
"Rahul Gandhi",
],
},
];
displayQuestionAndOptions();
// TO DISPLAY TIMER AT START
timer.innerHTML = counter--; // 10
displayTimer();
id1 = setInterval(changeQuestion, 10000);
// STORING USER ANSWER
for (let i = 0; i < options.length; i++) {
options[i].addEventListener("click", storeUserAnswer);
}
nextQuestion.addEventListener("click", changeQuestion);
function changeQuestion() {
if (questionNumber === data.length - 1) {
clearInterval(id1); // To stop question cycle
}
counter = 10;
timer.innerHTML = counter--;
displayQuestionAndOptions();
}
function displayQuestionAndOptions() {
//TO DISPLAY QUESTION
question.innerHTML = data[questionNumber].question;
//TO DISPLAY OPTIONS
for (let i = 0; i < options.length; i++) {
options[i].innerHTML = data[questionNumber].options[i];
}
questionNumber++;
}
function displayTimer() {
id2 = setInterval(() => {
if (counter === 0) {
counter = 10;
timer.innerHTML = counter--;
if (questionNumber === data.length) {
clearInterval(id2); // To stop timer cycle
quizDiv.style.display = "none";
scoreDiv.style.display = "block";
displayScore();
}
} else {
timer.innerHTML = counter--;
}
}, 1000);
}
function storeUserAnswer(e) {
userAnswers.push(e.target.innerHTML);
console.log(userAnswers);
}
function displayScore() {
let score = 0;
for (let i = 0; i < userAnswers.length; i++) {
if (userAnswers[i] === data[i].answer) score++;
}
scoreDivH2.innerHTML = "You have scored " + score + " out of " + data.length;
}
//HOISTING: to take var declarations & function definitions up top