-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
134 lines (121 loc) · 3.54 KB
/
index.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
const perguntas = [
{
pergunta: "Qual é a forma correta de declarar uma variável em JavaScript?",
respostas: [
"var myVar;",
"variable myVar;",
"v myVar;",
],
correta: 0
},
{
pergunta: "Qual destes métodos é usado para adicionar um elemento ao final de um array em JavaScript?",
respostas: [
"append()",
"push()",
"addToEnd()",
],
correta: 1
},
{
pergunta: "Qual é o operador de igualdade estrita em JavaScript?",
respostas: [
"==",
"===",
"=",
],
correta: 1
},
{
pergunta: "Qual é o resultado da expressão '3' + 2 em JavaScript?",
respostas: [
"5",
"32",
"Erro",
],
correta: 1
},
{
pergunta: "Qual é o método utilizado para dividir uma string em um array de substrings em JavaScript?",
respostas: [
"split()",
"divide()",
"break()",
],
correta: 0
},
{
pergunta: "Qual é a sintaxe correta para um loop 'for' em JavaScript?",
respostas: [
"for (i = 0; i < 5; i++)",
"loop (i = 0; i < 5; i++)",
"for (i = 0; i <= 5)",
],
correta: 0
},
{
pergunta: "Como você acessaria o terceiro elemento de um array chamado 'myArray' em JavaScript?",
respostas: [
"myArray[3]",
"myArray(3)",
"myArray[2]",
],
correta: 2
},
{
pergunta: "Qual método é usado para remover o último elemento de um array em JavaScript?",
respostas: [
"removeLast()",
"pop()",
"deleteLast()",
],
correta: 1
},
{
pergunta: "Qual função é usada para arredondar um número para o inteiro mais próximo em JavaScript?",
respostas: [
"round()",
"ceil()",
"floor()",
],
correta: 0
},
{
pergunta: "Qual é a maneira correta de escrever um comentário de uma linha em JavaScript?",
respostas: [
"// Este é um comentário",
"<!-- Este é um comentário -->",
"/* Este é um comentário */",
],
correta: 0
}
];
const quiz = document.querySelector('#quiz')
const template = document.querySelector('template')
const corretas = new Set()
const totalDePerguntas = perguntas.length
const mostrarTotal = document.querySelector('#acertos span')
mostrarTotal.textContent = corretas.size + ' de ' + totalDePerguntas
// loop ou laço de repetição
for(const item of perguntas) {
const quizItem = template.content.cloneNode(true)
quizItem.querySelector('h3').textContent = item.pergunta
for(let resposta of item.respostas) {
const dt = quizItem.querySelector('dl dt').cloneNode(true)
dt.querySelector('span').textContent = resposta
dt.querySelector('input').setAttribute('name', 'pergunta-' + perguntas.indexOf(item))
dt.querySelector('input').value = item.respostas.indexOf(resposta)
dt.querySelector('input').onchange = (event) => {
const estaCorreta = event.target.value == item.correta
corretas.delete(item)
if(estaCorreta) {
corretas.add(item)
}
mostrarTotal.textContent = corretas.size + ' de ' + totalDePerguntas
}
quizItem.querySelector('dl').appendChild(dt)
}
quizItem.querySelector('dl dt').remove()
// coloca a pergunta na tela
quiz.appendChild(quizItem)
}