簡體   English   中英

如何在計算器中使用 CE 密鑰?

[英]How can I use a CE key in a calculator?

我正在制作一個類似於 Windows 計算器的計算器,並且已經完成,唯一不能做的就是讓 CE 按鈕可用。 我希望 CE 按鈕刪除您輸入的最后一個方程,例如。 如果您輸入 78-89*90,它只會刪除 *90。

這是我擁有的javascript代碼:

var display = document.getElementById("screen");
var buttons = document.getElementsByClassName("button");
  
  Array.prototype.forEach.call(buttons, function(button) {
  button.addEventListener("click", function() {
    if (button.textContent != "=" && 
        button.textContent != "C" && 
        button.textContent != "x" && 
        button.textContent != "÷" && 
        button.textContent != "√" && 
        button.textContent != "x ²" && 
        button.textContent != "%" && 
        button.textContent != "⌫" &&
        button.textContent != "1/x" &&
        button.textContent != "CE" &&
        button.textContent != "±") {
      display.value += button.textContent;
    } else if (button.textContent === "=") {
      equals();
    } else if (button.textContent === "C") {
      clear();
    } else if (button.textContent === "x") {
      multiply();
    } else if (button.textContent === "÷") {
      divide();
    } else if (button.textContent === "±") {
      plusMinus();
    } else if (button.textContent === "⌫") {
      backspace();
    } else if (button.textContent === "%") {
      percent();
    } else if (button.textContent === "x ²") {
      square();
    } else if (button.textContent === "√") {
      squareRoot();
    } else if (button.textContent === "1/x") {
      divide1();
    } else if (button.textContent === "CE") {
      clearone();
    }
  });
});


function syntaxError() {
  if (eval(display.value) == SyntaxError || eval(display.value) == ReferenceError || eval(display.value) == TypeError) {
    display.value == "Syntax Error";
  }
}


function equals() {
  if ((display.value).indexOf("^") > -1) {
    var base = (display.value).slice(0, (display.value).indexOf("^"));
    var exponent = (display.value).slice((display.value).indexOf("^") + 1);
    display.value = eval("Math.pow(" + base + "," + exponent + ")");
  } else {
    display.value = eval(display.value)
    checkLength()
    syntaxError()
  }
}

function clear() {
  display.value = "";
}

function backspace() {
  display.value = display.value.substring(0, display.value.length - 1);
}

function multiply() {
  display.value += "*";
}

function divide() {
  display.value +=  "/";
}

function plusMinus() {
  if (display.value.charAt(0) === "-") {
    display.value = display.value.slice(1);
  } else {
    display.value = "-" + display.value;
  }
}

function square() {
  display.value = eval(display.value * display.value);
}

function squareRoot() {
  display.value = Math.sqrt(display.value);
}

function percent() {
  display.value = display.value / 100;
}

function divide1() {
  display.value = 1 / display.value;
}

我需要創建一個名為clearone的函數,如前所述,清除您輸入的最后一個方程。

提前致謝。

只需拆分值並一一檢查,如果它是數字則刪除該值,並在不是數字時打破循環。

 function clearone(){ let v = '78-89*90'.split(''); let ar = [0,1,2,3,4,5,6,7,8,9]; for(a of v){ let index = ar.indexOf(parseInt(a)); if(index == -1){ v.pop(); v= v.join(""); console.log(v); break; }else{ v.pop(); } } } clearone();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM