繁体   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