-
Notifications
You must be signed in to change notification settings - Fork 0
/
scripts.js
126 lines (123 loc) · 4.28 KB
/
scripts.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
const numBtns = [...document.getElementsByClassName('num-button')].sort((a, b) => a.innerText - b.innerText);
const opBtns = [...document.getElementsByClassName('op-button')];
const pBtn = document.querySelector('.p-button');
const ceBtn = document.querySelector('.ce-button');
const cBtn = document.querySelector('.c-button');
const backBtn = document.querySelector('.backspace-button');
const dotBtn = document.querySelector('.dot-button');
const evalBtn = document.querySelector('.eval-button');
const memRecBtn = document.querySelector('.memRec-button');
const memReadBtn = document.querySelector('.memRead-button');
const rootBtn = document.querySelector('.root-button');
const powBtn = document.querySelector('.power-button');
const logBtn = document.querySelector('.log-button')
const displayCurr = document.querySelector('#lowerDisplay');
const displayPrev = document.querySelector('#higherDisplay');
let solved = false;
let memory = {
value: "0",
empty: true,
};
numBtns.forEach((item, index) => {
item.addEventListener('click', e =>{
if(solved){
displayCurr.innerHTML = "";
displayPrev.innerHTML = "";
solved = false;
}
let display = displayCurr.innerHTML;
if(displayCurr.innerHTML === "0"){
display = displayCurr.innerHTML.slice(0,0);
}
if(display.length === 15){
e.preventDefault();
} else {
display += numBtns[index].innerHTML;
}
displayCurr.innerHTML = display;
})
})
opBtns.forEach((item,index) =>{
item.addEventListener('click', e => {
let display = displayCurr.innerHTML;
if([...display].pop() === "."){
display = [...display];
display.pop();
displayCurr.innerHTML = display.join("");
} else if ([...display].shift() === "."){
display = [...display];
display.shift();
displayCurr.innerHTML = display.join("");
}
let secondNum = displayCurr.innerHTML;
displayCurr.innerHTML = "0";
secondNum = [...secondNum];
secondNum.push(opBtns[index].innerHTML);
displayPrev.innerHTML = secondNum.join("");
})
})
rootBtn.addEventListener('click', e => {
let display = parseFloat(displayCurr.innerHTML);
displayCurr.innerHTML = Math.sqrt(display).toString();
})
powBtn.addEventListener('click', e => {
let display = parseFloat(displayCurr.innerHTML);
displayCurr.innerHTML = Math.pow(display, 2).toString();
})
logBtn.addEventListener('click', e => {
let display = parseFloat(displayCurr.innerHTML);
displayCurr.innerHTML = Math.log(display).toString();
})
memRecBtn.addEventListener('click', e => {
e.preventDefault();
memory.value = displayCurr.innerHTML;
memory.empty = false;
document.querySelector('.memRead-button').setAttribute('style', "border:3px solid #00ff44;border-radius:5px;margin:0;");
})
memReadBtn.addEventListener('click', e => {
displayCurr.innerHTML = memory.value;
})
ceBtn.addEventListener('click', e => {
e.preventDefault();
displayCurr.innerHTML = "0";
displayPrev.innerHTML = "";
})
cBtn.addEventListener('click', e => {
e.preventDefault();
displayCurr.innerHTML = "0";
memory.value = "0";
document.querySelector('.memRead-button').removeAttribute('style');
})
backBtn.addEventListener('click', e => {
e.preventDefault();
let display = displayCurr.innerHTML;
display = [...display];
display.pop();
displayCurr.innerHTML = display.join("");
})
pBtn.addEventListener('click', e => {
e.preventDefault();
let display = displayCurr.innerHTML;
display /= 100;
displayCurr.innerHTML = display;
})
dotBtn.addEventListener('click', e => {
e.preventDefault();
let display = displayCurr.innerHTML;
display = [...display];
const findDot = display.some(x => x === ".");
findDot ? e.preventDefault() : display.push(".");
displayCurr.innerHTML = display.join("");
})
evalBtn.addEventListener('click', e => {
e.preventDefault();
let numA = displayPrev.innerHTML;
let numB = displayCurr.innerHTML;
displayPrev.innerHTML = numA + numB;
numA = [...numA];
const op = numA.pop();
numA = numA.join("");
let solve = eval(`${numA} ${op} ${numB}`)
displayCurr.innerHTML = solve;
solved = true;
})