Repository navigation
Expand file tree
/
Copy pathscript.js
More file actions
92 lines (87 loc) · 2.88 KB
/
Copy pathscript.js
File metadata and controls
92 lines (87 loc) · 2.88 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
let expression = document.querySelector("#expression");
let check = document.querySelector(".check");
let operations = document.querySelectorAll("[data-operation]");
let numbers = document.querySelectorAll("[data-number]");
let remove = document.querySelector("[data-delete]");
let clear = document.querySelector("[data-clear]");
let sqrt = document.querySelector("[data-sqrt]");
let getResult = document.querySelector("[data-get-result]");
let prevRes = document.querySelector("#previous-result");
let lastEl = "";
// clearing the result box
clear.addEventListener("click", () => {
expression.innerText = "";
prevRes.innerText = "0";
});
// deleting items in the result box
remove.addEventListener("click", () => {
if (expression.innerText !== "") {
let mathArr = expression.innerText.split("");
mathArr.pop();
expression.innerText = mathArr.join("");
}
});
// typing numbers
numbers.forEach((number) => {
number.addEventListener("click", () => {
expression.innerText += number.innerText;
lastEl = number.innerText;
});
});
// typing operations
operations.forEach((operation) => {
operation.addEventListener("click", () => {
let expressionArr = expression.innerText.split("");
lastEl = expressionArr[expressionArr.length - 1];
if (expression.innerText.split("").length == 0) {
return;
} else {
if (
(lastEl === "+" && operation.innerText === "+") ||
(lastEl === "-" && operation.innerText === "-") ||
(lastEl === "*" && operation.innerText === "*") ||
(lastEl === "/" && operation.innerText === "/") ||
(lastEl === "%" && operation.innerText === "%") ||
(lastEl === "*" && operation.innerText === "/") ||
(lastEl === "/" && operation.innerText === "*") ||
(lastEl === "%" && operation.innerText === "*") ||
(lastEl === "%" && operation.innerText === "/") ||
(lastEl === "*" && operation.innerText === "%") ||
(lastEl === "/" && operation.innerText === "%")
) {
expression.innerText = expressionArr.join("");
} else {
expression.innerText += operation.innerText;
lastEl = operation.innerText;
}
}
});
});
// calculating the result
getResult.addEventListener("click", () => {
if (
lastEl === "+" ||
lastEl === "-" ||
lastEl === "*" ||
lastEl === "/" ||
lastEl === "%" ||
lastEl === "."
) {
check.innerHTML = "! Wrong Expression";
} else {
check.innerHTML = "";
prevRes.innerText = eval(expression.innerText).toLocaleString("en-US");
expression.innerText = "";
}
});
// square root
sqrt.addEventListener("click", () => {
if (expression.innerText !== "") {
prevRes.innerText = Math.sqrt(expression.innerText).toLocaleString("en-US");
expression.innerText = "";
} else {
prevRes.innerText = Math.sqrt(
prevRes.innerText.replaceAll(",", "")
).toLocaleString("es-US");
}
});