javascript - Math.js 错误:无法将“abc”转换为数字
问题描述
我有一个 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
解决方案
我有点困惑,因为这可以使用问题评论吗?也许是错字?
var variables = {'A': 'abc'}
var formula = 'A == "abc"'
math.import({
equal: function (a, b) { return a === b }
}, {override: true})
console.log(math.evaluate(formula, variables))
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/6.0.2/math.js"></script>
推荐阅读
- linux - 基于 linux 的 ARM 的虚拟内存限制
- swift - CATransaction 完成块被调用两次
- python - 计算熊猫中字符串列中单词的出现次数
- javascript - 你如何在反应中使用 AntDesign List 上的 action 和额外属性?
- java - 当从 JFrame 调用时,ActionListener 在 JPanel 上执行两次
- javascript - 如何在 axios 中编写这个 xhr 请求?
- php - 如何将文件保存在路径中并使用 ../../ 从不同的路径 PHP 访问它
- python - 将字符列表转换为 ascii 值列表
- html - HTML 表单 (GET) 中使用的方法是否与 HTTP GET 不同?
- paypal - 显示在获取付款详细信息时不刷新消息/页面 PayPal 结帐按钮