Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 条件表达式的求值_Javascript - Fatal编程技术网

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。希望这能很好地解释