我正在使用 mathjs 从 JSON 数据中计算一些表达式。我调用 eval,将 JSON 数据作为范围传递。我可以在 mathjs 脚本中使用 JSON 路径,例如 user1.age > user2.age。但是当 JSON 中不包含这些路径时,mathjs 会抛出错误。
如果符号为空,我可以在 mathjs 脚本中轻松检查它。但是如果它是未定义的,我就不能这样做,因为 mathjs 会抛出错误,而不是将其评估为未定义。
left == null ? right : left
对于以下输入,此脚本的计算结果为 42 -
{
"left": null,
"right": 42
}
但为此引发错误“错误:未定义的符号” -
{
"right": 42
}
尝试遍历表达式树,并将所有缺少的符号添加到 JSON 数据中,然后将其传递给 eval。 https://mathjs.org/examples/advanced/expression_trees.js.html 但是有没有更好的方法来处理自定义符号?