Как хранить два элемента вместе в стеке Javascript Calculator - PullRequest
0 голосов
/ 19 сентября 2019

Так что мне нужно хранить элементы в стеке.Например, скажем, мне нужно вычислить 23 + 55. Я хочу 23 в одном индексе и 55 в одном индексе.Так что это не похоже на ["2", "3", "+", "5", "5"], но я хочу это как ["23", "+", "55"].Мне нужно каким-то образом сохранить первый нажатый номер, а затем получить его после отправки второго номера.

<script>
  var stack = new Array();
  const buttons = document.querySelectorAll("input[type=button]");
  const length = buttons.length;


  for (let i = 0; i < length; i++) {
    buttons[i].addEventListener("click", handle);
  }


  var prevop = '';

  function handle(event) {
    const value = event.target.value;

    stack.push(value);

    if (prevop == '=') {
      document.getElementById("textfield").value = "";
    }

    prevop = value;

    switch (value) {
      case "+":
        console.log("+ was clicked");
        document.getElementById("textfield").value += value;
        break;
      case "-":
        console.log("- was clicked");
        document.getElementById("textfield").value += value;
        break;
      case "*":
        console.log("* was clicked");
        document.getElementById("textfield").value += value;
        break;
      case "/":
        console.log("/ was clicked");
        document.getElementById("textfield").value += value;
        break;
      case "=":
        var tmp = eval(document.getElementById("textfield").value);
        document.getElementById("textfield").value += value + tmp;
        break;
      default:
        console.log("%s was clicked", value);
        document.getElementById("textfield").value += value;
    }
  }
</script>  
...