-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
65 lines (58 loc) · 1.69 KB
/
Copy pathindex.js
File metadata and controls
65 lines (58 loc) · 1.69 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
const operation = document.querySelector('.operation')
const numbers = document.querySelectorAll('.num')
const operators = document.querySelectorAll('.op')
const equals = document.querySelector('.eq')
const reset = document.querySelector('.res')
const deleteElement = document.querySelector('.del')
let result = 0
numbers.forEach(number => {
number.addEventListener("click",() => {
operation.textContent += number.innerText
})
})
operators.forEach(operator => {
operator.addEventListener('click', () => {
operation.textContent += operator.textContent
})
})
deleteElement.addEventListener('click', () => {
operation.textContent = operation.textContent.slice(0, -1)
})
equals.addEventListener('click', () => {
try {
result = eval(operation.textContent)
operation.textContent = result
}
catch {
operation.textContent = "Erreur"
}
})
reset.addEventListener('click', () => {
operation.textContent = ""
result = 0
})
// -------------------- the result using a map
/*
equals.addEventListener('click', () => {
//etape 1
const expr = operation.textContent
const numbers = expr.split(/[\+\-\*\/]/).map(Number)
const operators = expr.match(/[\+\-\*\/]/g)
//etape 2
result = numbers[0]
for (let i = 0; i < operators.length; i++) {
switch (operators[i]) {
case '+': result += numbers[i+1]
break
case '-': result -= numbers[i+1]
break
case '*': result *= numbers[i+1]
break
case '/': result /= numbers[i+1]
break
default: result = "Erreur"
}
}
operation.textContent = result
})
*/