javascript - 字符串转换为数字和 +、-、* 和/- Javascript 方程计算器

标签 javascript converters calculator equation

我正在开发“方程计算器”,但遇到一些问题。我现在可以插入我的方程,但我希望它是数字,而不仅仅是数字:我希望所有 '+' 、 '-' 、 '*' 和 '/' 都做正确的事。

到目前为止,这是我的代码:


var ligning = prompt("Insert your equation here:");
var newLigning = ligning.split("=");
var sideOne = parseInt(newLigning[0],10);
var sideTwo = parseInt(newLigning[1],10);
var calculator = function() {

};
alert(sideOne);
alert(sideTwo);

这里有一个非常具体的例子:

“1 + 2 = 3”应该警报 3,然后再次警报 3(因为底部有两个警报) - 我该如何做到这一点?

最佳答案

而不是:

var sideOne = parseInt(newLigning[0],10);

您可能想要类似的东西:

var sideOne = performMath(newLining[0],10);

地点:

function performMath(equation) {
    //CODE HERE
}

performMath 可以通过几种方式完成。您需要拆分方程并获得 2 之间的数字和方程。这可以递归完成!

我认为这可能是一个很好的起点。

编辑

与这个问题无关,如果您开始考虑操作优先级(PEDMAS),这是一项稍微困难的任务。方法是相同的,performMath 需要稍微复杂一些。在这种情况下,我会推荐某种用于数字的数组结构和另一种用于方程的数组结构。

编辑2

Paul S 在开始之前还很好地清理了字符串。你不能假设有人会输入方程式。 Rich Cook 在编程时说道:

"Programming today is a race between software engineers striving to build bigger and better idiot- proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."

编辑3

这个小代码片段应该有点帮助...无论如何,这可能不是最有效的代码...

var equation = "1+22-3";
var operators = "+-*\/"

var currentNumber = "";
var numbers = new Array();
var operatorArray = new Array();
for(var i=0; i<equation.length; i++) {
  var currentChar = equation.charAt(i);
  if(operators.indexOf(currentChar) != -1) {
    operatorArray[operatorArray.length] = (currentChar);
    numbers[numbers.length] = (currentNumber);
    currentNumber = "";
  } else {
    currentNumber = currentNumber + currentChar;
    alert(currentNumber);
  }
}
numbers[numbers.length] = currentNumber;
alert("numbers : " + numbers);
alert("operators : " + operatorArray);

现在您所要做的就是遍历数组并执行正确的操作。

关于javascript - 字符串转换为数字和 +、-、* 和/- Javascript 方程计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244170/

相关文章:

javascript - 从用户输入到搜索的动态 URL

php - 警告:DOMDocument::loadXML():需要开始标记,在实体中找不到 '&lt;'

c++ - 如何在 C++ 中将计算分解为两个 double 和一个字符

java - 在 Java 中制作退格按钮,删除 Textview 中的最后一个字符

javascript - 正则表达式删除子字符串和其他字符

javascript - 代码不工作::$ ("#pmhxform input:checkbox:checked").each(function() { var id= $(this).id(); });

php - mysql时间如何转换

java - 基于循环内加减一的计算器思维练习

javascript - 如何仅在页面完全加载后才启动 CSS 动画?

java - apache cxf - 将 WSDL 转换为 Java