Skip to content

Commit ff52dcb

Browse files
Merge pull request harsh98trivedi#5 from mnaray/master
fix issue harsh98trivedi#4
2 parents 8578df1 + c8f5593 commit ff52dcb

File tree

1 file changed

+67
-47
lines changed

1 file changed

+67
-47
lines changed

calc.js

Lines changed: 67 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,98 @@
1-
console.log("Javascript Calculator Made by Harsh Trivedi\nhttps://harsh98trivedi.github.io")
1+
console.log(
2+
"Javascript Calculator Made by Harsh Trivedi\nhttps://harsh98trivedi.github.io"
3+
);
24

3-
document.getElementById('answer').readOnly = true; //set this attribute in Html file
4-
let screen = document.getElementById('answer');
5-
buttons = document.querySelectorAll('button');
6-
let screenValue = '';
5+
document.getElementById("answer").readOnly = true; //set this attribute in Html file
6+
let screen = document.getElementById("answer");
7+
buttons = document.querySelectorAll("button");
8+
let screenValue = "";
79
for (item of buttons) {
8-
item.addEventListener('click', (e) => {
9-
// console.log(buttonText, "has been pressed");
10+
item.addEventListener("click", (e) => {
1011
buttonText = e.target.innerText;
11-
if (buttonText == 'X') {
12-
buttonText = '*';
12+
if (buttonText == "X") {
13+
buttonText = "*";
1314
screenValue += buttonText;
1415
screen.value = screenValue;
15-
}
16-
else if (buttonText == 'C') {
16+
} else if (buttonText == "C") {
1717
screenValue = "";
1818
screen.value = screenValue;
19-
}
20-
else if (buttonText == '=') {
21-
screen.value = eval(screenValue);
22-
}
23-
else {
19+
} else if (buttonText == "=") {
20+
// Check if there's a number directly infront of bracket
21+
if (
22+
screen.value.includes("(") &&
23+
!isNaN(screen.value.charAt(screen.value.indexOf("(") - 1))
24+
) {
25+
window.onBracketMultiplication();
26+
return;
27+
} else {
28+
screen.value = eval(screenValue);
29+
}
30+
} else {
2431
screenValue += buttonText;
2532
screen.value = screenValue;
2633
}
27-
28-
})
34+
});
2935
}
3036

31-
document.addEventListener("keydown", function(event) {
37+
document.addEventListener("keydown", function (event) {
3238
console.log(event.which);
33-
if(event.shiftKey==57){
34-
event.key = '(';
39+
if (event.shiftKey == 57) {
40+
event.key = "(";
41+
} else if (event.shiftKey == 48) {
42+
event.key = ")";
43+
} else if (event.shiftKey == 53) {
44+
event.key = "%";
3545
}
36-
else if(event.shiftKey==48){
37-
event.key = ')';
38-
}
39-
else if(event.shiftKey==53){
40-
event.key = '%';
41-
}
42-
if(event.keyCode==88){
43-
screenValue += '*';
46+
if (event.keyCode == 88) {
47+
screenValue += "*";
4448
screen.value = screenValue;
4549
}
46-
if(event.key<=9 || event.key=='+' || event.key=='-' || event.key=='*' || event.key=='.' || event.key=='/' || event.key=='%' || event.key=='(' || event.key==')'){
50+
if (
51+
event.key <= 9 ||
52+
event.key == "+" ||
53+
event.key == "-" ||
54+
event.key == "*" ||
55+
event.key == "." ||
56+
event.key == "/" ||
57+
event.key == "%" ||
58+
event.key == "(" ||
59+
event.key == ")"
60+
) {
4761
screenValue += event.key;
4862
screen.value = screenValue;
4963
}
50-
if(event.keyCode == 13 || event.keyCode == 187)
51-
{
64+
if (event.keyCode == 13 || event.keyCode == 187) {
5265
screen.value = eval(screenValue);
53-
}
54-
else if(event.keyCode == 46){
66+
} else if (event.keyCode == 46) {
5567
screenValue = "";
5668
screen.value = screenValue;
5769
console.clear();
58-
}
59-
else if(event.keyCode == 8){
70+
} else if (event.keyCode == 8) {
6071
screenValue = screenValue.slice(0, -1);
6172
screen.value = screenValue;
62-
}
63-
else if(event.keyCode == 67){
73+
} else if (event.keyCode == 67) {
6474
screenValue = "";
6575
screen.value = screenValue;
6676
console.clear();
67-
}
68-
else if(event.keyCode == 82){
77+
} else if (event.keyCode == 82) {
6978
location.reload();
7079
}
71-
})
80+
});
7281

73-
window.onerror = function(){
74-
alert("PLEASE INPUT VALID EXPRESSION");
75-
screenValue = "";
76-
screen.value = screenValue;
77-
console.clear();
78-
}
82+
window.onerror = function () {
83+
alert("PLEASE INPUT VALID EXPRESSION");
84+
screenValue = "";
85+
screen.value = screenValue;
86+
console.clear();
87+
};
88+
89+
window.onBracketMultiplication = function () {
90+
screenValue = addStr(screen.value, screen.value.indexOf("("), "*");
91+
screen.value = eval(screenValue);
92+
};
93+
94+
function addStr(str, index, stringToAdd) {
95+
return (
96+
str.substring(0, index) + stringToAdd + str.substring(index, str.length)
97+
);
98+
}

0 commit comments

Comments
 (0)