Advertisement
Guest User

Untitled

a guest
May 27th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. function solve() {
  2.  
  3. let buttonElements = document.getElementsByTagName("button");
  4. let expressionOutputElement = document.getElementById("expressionOutput");
  5. let resultOutputElement = document.getElementById("resultOutput");
  6. for (let i = 0; i < buttonElements.length; i++) {
  7. buttonElements[i].addEventListener("click", onClick);
  8. }
  9.  
  10. function onClick() {
  11. if (this.value !== "=" && this.value !== "Clear") {
  12. if (this.value === '/' || this.value === '-' || this.value === '*' || this.value === '+') {
  13. expressionOutputElement.textContent += ` ${this.value} `;
  14. } else {
  15. expressionOutputElement.textContent += this.value;
  16. }
  17.  
  18. } else if (this.value === "Clear") {
  19. expressionOutputElement.textContent = "";
  20. resultOutputElement.textContent = "";
  21. } else {
  22. let resultString = expressionOutputElement.textContent;
  23. let numbers = resultString.match(/\d*\.*\d+/g);
  24. let operators = resultString.match(/[\+\*\-\/]/g);
  25. let result = Number(numbers[0]);
  26. if (operators) {
  27. for (let i = 0; i < operators.length; i++) {
  28. let operator = operators[i];
  29. let number = Number(numbers[i + 1]);
  30. switch (operator) {
  31. case"+":
  32. result += number;
  33. break;
  34. case"-":
  35. result -= number;
  36. break;
  37. case"*":
  38. result *= number;
  39. break;
  40. case"/":
  41. result /= number;
  42. break;
  43. }
  44.  
  45. }
  46. }
  47. resultOutputElement.textContent = result;
  48.  
  49. }
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement