Javascript 在另一个json中读取公式

Javascript 在另一个json中读取公式,javascript,angular8,Javascript,Angular8,我试图在angular 8中创建一种读取json的方法,并在某些情况下使用另一个json中的现有公式计算字段 下面是一个示例场景: input.json { "id": 1, "name": "Joao", "weight": 99, "height": 184 } formula.json { "imc": "weight/height^2", "abc": "(weight+10) * [ ind

我试图在angular 8中创建一种读取json的方法,并在某些情况下使用另一个json中的现有公式计算字段

下面是一个示例场景:

input.json {
        "id": 1,
        "name": "Joao",
        "weight": 99,
        "height": 184  }

formula.json {
       "imc": "weight/height^2",
       "abc": "(weight+10) * [ indiceY.other json]" }

result.json {   "id": 1,
        "name": "Joao",
        "weight": 99,
        "height": 184,  "formula": "imc", //or abc  
        "formula_result": 29.24  }
有没有关于如何集成json输入和公式以获得预期结果的建议


在最终产品中,配方可以更改或添加…

我想指出,采用的解决方案是采用lib公式解析器

我仍在努力,但毫无疑问,这个库将帮助我


谢谢,还有很好的密码。

呼,孩子。你肯定不想这样做。为了实现这一点,您需要自己编写一个lexer来标记任意公式,如果幸运的话,您可以得到类似调车场算法的东西,将其转换为基于堆栈的RPN,然后从中计算结果。(或者使用
eval
,但是亲爱的Dante,请不要将
eval
用于像这样的任意外部输入。)你有什么理由在字符串中外部定义公式,而不仅仅是在代码中实现它们的功能。。。我想创建一个用户界面来操作公式,在某个时候,我会根据注册的公式列出计算列的数据。。。因此,用户将拥有创建或编辑公式的自主权。如果是用户输入定义公式,那么您肯定不想使用
eval
。这需要一点工作,但我认为最好的办法是重新设计JSON中公式的描述方式,以便它们只列出操作顺序,而操作本身由您硬编码。然后,您的UI将接收用户的输入,并逐步将其转换为JSON中存储的操作顺序。这样,您就不需要解析字符串中的操作,也不需要运行任意指令。@IceMetalPunk,谢谢。我理解你的观点,但我仍然不知道如何将这个概念应用于实际。。。我需要学习更多。。。