bobo_bobkata

Untitled

Oct 9th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. function solve() {
  2. let operands = ["/", "*", "-", "+",];
  3. let resultStr = "";
  4. let operator;
  5. let buttons = document.getElementsByTagName("button");
  6. Array.from(buttons).map(x => x.addEventListener("click", function calc(e) {
  7. let btn = e.target.value;
  8. if (btn === "Clear") {
  9. resultStr = undefined;
  10. resultStr = "";
  11. document.getElementById("expressionOutput").innerHTML = resultStr;
  12. document.getElementById("resultOutput").innerHTML = resultStr;
  13. }
  14. else if (operands.includes(btn)) {
  15. operator = btn;
  16. resultStr += ` ${operator} `;
  17. document.getElementById("expressionOutput").innerHTML = resultStr;
  18. }
  19. else if (btn === "=") {
  20. let val = resultStr.split(operator).map(x => x.trim()).filter(x => x != "");
  21. if (val.length === 1) {
  22. resultStr = "NaN";
  23. }
  24. else {
  25. switch (operator) {
  26. case "/": resultStr = Number(val[0]) / Number(val[1]); break;
  27. case "*": resultStr = Number(val[0]) * Number(val[1]); break;
  28. case "+": resultStr = Number(val[0]) + Number(val[1]); break;
  29. case "-": resultStr = Number(val[0]) - Number(val[1]); break;
  30. }
  31. }
  32. document.getElementById("resultOutput").innerHTML = resultStr;
  33. }
  34. else {
  35. resultStr += btn;
  36. document.getElementById("expressionOutput").innerHTML = resultStr;
  37. }
  38. }))
  39. }
Add Comment
Please, Sign In to add comment