Update calculator.js

This commit is contained in:
BananaBJones 2021-12-09 04:28:31 -07:00
parent a4f395c688
commit edab9ba9c6
1 changed files with 9 additions and 6 deletions

View File

@ -2,6 +2,7 @@ let displayValue = 0;
let operator = 0; let operator = 0;
let num1 = 0; let num1 = 0;
let num2 = 0; let num2 = 0;
let answer = 0;
const specialChars = ['!', '^', '*', '/', '+', '-']; const specialChars = ['!', '^', '*', '/', '+', '-'];
const decimal = ['.']; const decimal = ['.'];
@ -74,12 +75,18 @@ const operate = function(op, num1, num2) {
} }
function updateDisplay(id) { function updateDisplay(id) {
switch (id) { switch (id) {
case '!':
operator = id;
num1 = display.textContent;
answer = operate(operator, num1)
display.textContent = answer;
displayValue = answer;
break;
case '+': case '+':
case '-': case '-':
case '*': case '*':
case '/': case '/':
case '^': case '^':
case '!':
case '.': case '.':
let includesSpec = specialChars.some(char => display.textContent.includes(char)); let includesSpec = specialChars.some(char => display.textContent.includes(char));
let includesDec = display.textContent.includes('.'); let includesDec = display.textContent.includes('.');
@ -105,7 +112,6 @@ function updateDisplay(id) {
operator = id; operator = id;
display.textContent += id; display.textContent += id;
displayValue = display.textContent; displayValue = display.textContent;
console.log('false');
break; break;
} }
case '1': case '1':
@ -132,7 +138,6 @@ function updateDisplay(id) {
let newString = display.textContent.slice(0, -1); let newString = display.textContent.slice(0, -1);
display.textContent = newString display.textContent = newString
displayValue = display.textContent; displayValue = display.textContent;
console.log('back');
break; break;
case 'equals': case 'equals':
let num2 = display.textContent.split(/[\/+^!-*-]/); let num2 = display.textContent.split(/[\/+^!-*-]/);
@ -143,7 +148,7 @@ function updateDisplay(id) {
num1 = parseFloat(num1); num1 = parseFloat(num1);
num2 = num2[1]; num2 = num2[1];
num2 = parseFloat(num2); num2 = parseFloat(num2);
let answer = operate(operator, num1, num2) answer = operate(operator, num1, num2)
if (answer === Infinity) { if (answer === Infinity) {
display.style.fontSize = '40px'; display.style.fontSize = '40px';
display.textContent = 'To infinity, and beyond!'; display.textContent = 'To infinity, and beyond!';
@ -151,12 +156,10 @@ function updateDisplay(id) {
} }
display.textContent = answer; display.textContent = answer;
displayValue = answer; displayValue = answer;
console.log('equals');
break; break;
case 'clear': case 'clear':
display.textContent = '0'; display.textContent = '0';
displayValue = 0; displayValue = 0;
console.log('clear');
break; break;
} }
} }