Advertisement
Guest User

Untitled

a guest
May 20th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. function solve() {
  2.  
  3. let buttons = Array.from(document.getElementsByTagName('button'));
  4. let clearButton = buttons.splice(0, 1);
  5.  
  6. let firstNumber = '';
  7. let secondNumber = '';
  8. let isItFirstNumber = true;
  9. let operator = '';
  10. let result = 0;
  11.  
  12. buttons.forEach(button => {
  13. button.addEventListener('click', calculate)
  14. });
  15.  
  16. clearButton[0].addEventListener('click', clear);
  17.  
  18.  
  19. function calculate(e) {
  20. let buttonValue = e.target.textContent;
  21. let expressionOutput = document.getElementById('expressionOutput');
  22.  
  23. if (buttonValue === '=') {
  24. if (firstNumber !== '' && secondNumber !== '' && operator.length === 1) {
  25. switch (operator) {
  26. case 'x':
  27. result = Number(firstNumber) * Number(secondNumber);
  28. break;
  29. case '/':
  30. result = Number(firstNumber) / Number(secondNumber);
  31. break;
  32. case '-':
  33. result = Number(firstNumber) - Number(secondNumber);
  34. break;
  35. case '+':
  36. result = Number(firstNumber) + Number(secondNumber);
  37. break;
  38. }
  39. } else {
  40. result = NaN;
  41. }
  42.  
  43. document.getElementById('resultOutput').textContent = result;
  44.  
  45. } else if (buttonValue >= '0' && buttonValue <= '9' || buttonValue === '.') {
  46. if (isItFirstNumber) {
  47. firstNumber += buttonValue;
  48. } else {
  49. secondNumber += buttonValue;
  50. }
  51. expressionOutput.textContent += buttonValue;
  52. } else {
  53. isItFirstNumber = false;
  54. operator += buttonValue;
  55. expressionOutput.textContent += ` ${buttonValue} `;
  56. }
  57. }
  58.  
  59. function clear() {
  60. document.getElementById('resultOutput').textContent = '';
  61. document.getElementById('expressionOutput').textContent = '';
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement