Javascript 条件表达式的求值
我正在尝试编写一个递归算法来计算以下类型的表达式:Javascript 条件表达式的求值,javascript,Javascript,我正在尝试编写一个递归算法来计算以下类型的表达式:运算符变量和返回真/假的函数 [A] = [B] - [c] functionA(1,2) = functionB(3,4,5) functionA(functionC(a,b)) = functionB(3,4,5) 问题是,我不知道如何开始和使用什么方法。我可以使用stack或任何东西。 我正试图用Javascript实现这一点 任何逻辑/想法都是受欢迎的。也许您正在寻找这个,一个函数集合和一个基于堆栈的迭代,以一种风格对命令进行迭代
运算符
变量
和返回真/假
的函数
[A] = [B] - [c]
functionA(1,2) = functionB(3,4,5)
functionA(functionC(a,b)) = functionB(3,4,5)
问题是,我不知道如何开始和使用什么方法。我可以使用stack或任何东西。我正试图用Javascript实现这一点
任何逻辑/想法都是受欢迎的。也许您正在寻找这个,一个函数集合和一个基于堆栈的迭代,以一种风格对命令进行迭代 在输出中可以看到实际的命令和堆栈
var$={
'==':函数(b){返回函数(a){返回a===b;};},
“+”:函数(b){返回函数(a){返回a+b;};};},
'-':函数(b){返回函数(a){返回a-b;};};},
'1/x':函数(a){返回1/a;},
},
命令=[3,2',+',9,4',-','='],
结果=命令.reduce(函数(堆栈,命令){
无功温度;
如果($[命令]){
temp=$[命令];
while(typeof temp==='function'){
temp=temp(stack.pop());
}
堆栈推送(温度);
}否则{
stack.push(命令);
}
document.write(''+command+':'+JSON.stringify(stack,0,4)+'');
返回栈;
}, [])[0];
记录(结果)代码>也许您添加了一些(更多)示例并应用了一些fomat…问题绝对不清楚,很难真正得到它。我需要计算一个表达式,以确定结果是否为真/假。例如,2=1+1变量也可以是函数。函数可能会返回一个值。就像这里2可以是一个函数,比如FunctionA(arg1,arg2)。所以FunctionA(arg1,arg2)=1+1。如果函数求值的结果是2,并且1+1的结果也是2,则返回true。希望这能很好地解释