Update calculator.js
This commit is contained in:
parent
a4f395c688
commit
edab9ba9c6
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue