【发布时间】:2021-01-08 00:20:44
【问题描述】:
这是我们开始的:'7.7+7'
函数的输入是一个字符串数组(原始输入转换为后缀):7.7,7,+
然后会被反馈到另一个函数中,以便在我的 html 页面中显示。此函数嵌套在另一个父函数中以与类对象一起调用。
this.postfixEval = function(postfixArray){
var stack = new Stack();
for( element of postfixArray){
console.log("element: " + element);
if(isNaN(element)){
var x = stack.pop();
var y = stack.pop();
console.log("var x/y: " + x + " " + y + " element: " + element) ;
if (element == "+"){
result = (y+x);
console.log("Expected Result: " + result)
stack.push(y + x);
} else if (element == '-'){
stack.push(y - x);
} else if (element == '*'){
stack.push(y * x);
} else if (element == '/'){
stack.push(y / x);
}
} else {
stack.push( parseFloat(element) );
}
}
//final check for non numbers within the stack
var returnValue = null;
while( !stack.isEmpty() ){
stack.print();
var element = stack.pop();
if(isNaN(element)){
continue;
} else{
returnValue = element;
}
}
return returnValue;
}
我不确定我做错了什么?输出仅为 7.7。以下是尝试调试的日志记录示例:
scripts.js:75 postFix: 7.7,7,+
scripts.js:145 undefined
scripts.js:175 element: 7.7
scripts.js:175 element: 7
scripts.js:175 element: +
scripts.js:180 var x/y: 7 7.7 element: +
scripts.js:76 result: null
提前感谢您的时间和帮助。
【问题讨论】:
-
更正:然后会被反馈到另一个函数中,以便在我的 html 页面中显示 edit: The Result。此函数嵌套在另一个父函数中以使用类对象调用
-
当我在 Node 中运行您的代码时,将“堆栈”作为数组而不是您的堆栈类型,您的代码可以正常工作。
-
@Pointy 完全正确!
标签: javascript html algorithm postfix-mta postfix-notation