Javascript 在另一个json中读取公式
我试图在angular 8中创建一种读取json的方法,并在某些情况下使用另一个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
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,谢谢。我理解你的观点,但我仍然不知道如何将这个概念应用于实际。。。我需要学习更多。。。