How can I convert a string into a math operator in javascript
本问题已经有最佳答案,请猛点这里访问。
如果我有一个数学方程式的字符串,我想将其拆分然后计算。 我知道我可以使用eval()函数来执行此操作,但是我对是否有另一种方法可以做到这一点感兴趣-特别是首先拆分字符串。 所以我有类似的东西
1 2 | var myString ="225 + 15 - 10" var newString = myString.split(""); |
这会将myString转换为数组:[" 225"," +"," 15","-"," 10"];
我的下一个任务是将所有奇数字符串转换为整数,我认为我可以使用parseInt();。 对于。 我的问题是,如何将" +"和"-"转换为实际的算术运算符? 这样最后我剩下的是可以计算的数学表达式?
这可能吗?
1 2 3 4 5 6 | var math_it_up = { '+': function (x, y) { return x + y }, '-': function (x, y) { return x - y } }???????; math_it_up['+'](1, 2) == 3; |
Oliver Morgan在评论中提到了JavaScript的
1 | eval("3 + 4") |
将返回7作为3 + 4 = 7。
这对您有帮助,因为您有希望将其视为代表的数学运算符和操作数的字符串数组。
1 | myArray = ["225","+","15","-","10"]; |
无需将数组中的任何字符串转换为整数或运算符,就可以编写
1 | eval(myArray[0] + myArray[1] + myArray[2]); |
这将转化为
1 | eval("225" +"+" +"15"); |
这将转化为
1 | eval("225 + 15"); |
它将返回240,即225加15的值。
或更通用的:
1 | eval(myArray.join(' ')); |
这将转化为
1 | eval("225 + 15 - 10"); |
它将返回230,即为225加15并减去10的值。因此,您可以看到,在这种情况下,可以跳过将数组中的字符串转换为整数和运算符的过程,并且如Oliver Morgan所说,仅
考虑将