【发布时间】:2019-07-11 00:57:25
【问题描述】:
我在反应中有一个 math.js 函数。它的作用是使用变量中的值评估公式,例如:
var variables = {'A': 1, 'B': 2}
var formula = 'A > 0 or B < 5'
math.evaluate(formula, variables) // this will return true
但是在比较字符串的时候,返回如下错误,
错误:无法将“abc”转换为数字
var variables = {'A': 'abc'}
var formula = 'A == "abc"'
math.evaluate(formula, variables) // this will return Error: Cannot convert "abc" to a number
谁能指导我如何做到这一点?我需要的是变量可以同时评估字符串和数字,谢谢。任何与此类似的问题也将不胜感激。我试图搜索,但找不到太多。
我尝试了以下方法,它不会覆盖该功能: https://github.com/josdejong/mathjs/issues/1051#issuecomment-369930811
更新 这就是我想要做的:
formula = ' A >= 2 and B == "year" '
variables = { A: 23, B: 'year' }
import { evaluate } from 'mathjs'
const MATH_EVAL = (formula, variables)=> {
var result = evaluate(formula, variables)
return result
}
export default MATH_EVAL
【问题讨论】:
-
我认为您的问题在于第一个示例的变量 A 和 B 都是数字,而第二个示例有一个变量 A 是一个字符串。似乎
evaluate期望变量是数字,而不是字符串。 -
@Pyromonk 是的,我知道,但是有没有办法比较字符串和数字?
-
您或许应该改写您的问题以表明这一点。
-
Uodated 这个问题。
标签: javascript reactjs math.js