如何使用一些默认值替换范围中缺少的变量?

时间:2019-05-08 14:51:45

标签: javascript eval mathjs

我正在使用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 但是,有没有更好的自定义符号处理方式?

0 个答案:

没有答案