将字符串转换为数学运算

问题描述 投票:0回答:3
javascript string vue.js calculator operation
3个回答
0
投票


我知道可以通过三种方法来实现这一目标:

第一种也是最差的方法:

var result;
eval("result = calculation");

请不要使用这个,因为 eval 是邪恶的。它将字符串评估为代码并创建针对您的站点安全的漏洞。我使用它的唯一方法是当它是一个没有人可以访问的个人网站时。

第二个选项:

创建一个函数,通过运算符拆分字符串,然后执行数学操作。如果计算器最终不会太复杂的话我会这样做。

第三种选择:

不要添加运算符 - 将数学操作添加到一种查询中。当你想计算这个时。只需通过查询即可。注意数学顺序!

这是我目前想到的3种方法,希望我能提供帮助
影子Lp174


0
投票

我建议您为每个操作制定单独的方法。它会生成更清晰、易于理解的代码,并且无论如何您都不会有那么多额外的代码:

<button @click = "add()">+</button>
<button @click = "subtract()">-</button>
<button @click = "multiply()">*</button>
<button @click = "divide()">/</button>

0
投票

使用 math.js

// evaluate expressions
math.evaluate('sqrt(3^2 + 4^2)')        // 5
math.evaluate('sqrt(-4)')               // 2i
math.evaluate('2 inch to cm')           // 5.08 cm
math.evaluate('cos(45 deg)')            // 0.7071067811865476

// provide a scope
let scope = {
    a: 3,
    b: 4
}
math.evaluate('a * b', scope)           // 12
math.evaluate('c = 2.3 + 4.5', scope)   // 6.8
scope.c                                 // 6.8

https://mathjs.org/docs/expressions/parsing.html

© www.soinside.com 2019 - 2024. All rights reserved.