在javascript中展开表达式
我在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) 谢谢您的帮助。您必须将表达式解析为抽象表达式树。这不是最容易的任务,但也不是不可能的。接下来,你必须实现一些代数性质,尤其是你在这里展示的。最后,您必须表示要在表达式的哪个子树上应用哪些规则 一旦您为一般情况完成了所有这些,将其应
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的响应得到这个表达式的