在javascript中展开表达式

在javascript中展开表达式,javascript,algorithm,math,Javascript,Algorithm,Math,我在javascript中有以下表达式(字符串): var my_expr = "(2*(A||B&&C))&&(3*D)"; 我怎样才能得到这样的东西: (2*A||2*B&&2*C)&&(3*D) 谢谢您的帮助。您必须将表达式解析为抽象表达式树。这不是最容易的任务,但也不是不可能的。接下来,你必须实现一些代数性质,尤其是你在这里展示的。最后,您必须表示要在表达式的哪个子树上应用哪些规则 一旦您为一般情况完成了所有这些,将其应

我在javascript中有以下表达式(字符串):

var my_expr = "(2*(A||B&&C))&&(3*D)";
我怎样才能得到这样的东西:

(2*A||2*B&&2*C)&&(3*D)

谢谢您的帮助。

您必须将表达式解析为抽象表达式树。这不是最容易的任务,但也不是不可能的。接下来,你必须实现一些代数性质,尤其是你在这里展示的。最后,您必须表示要在表达式的哪个子树上应用哪些规则

一旦您为一般情况完成了所有这些,将其应用于此情况以及您可能遇到的所有类似情况将变得微不足道


编辑:您必须遍历表达式树,没有快捷方式,因为这是代数属性在所有情况下都能正确应用的唯一方法

听起来您想:

> var str = "4*5";
> eval(str);
20

互联网上有无数关于为什么使用
eval
是一件危险的事情的资源。如果您是从另一个源获取字符串,则尤其如此。如果有任何替代方法,我建议您使用它们。

您不能只编写最下面的一个吗?不,我不能,因为我是通过另一个api的响应得到这个表达式的