你现在是一个前端领域专家,请帮我用 JavaScript 语言写一个函数,它需要实现:逆波兰表达式求值
时间: 2024-04-15 10:32:12 浏览: 13
当然,我可以帮你写一个 JavaScript 函数来实现逆波兰表达式求值。逆波兰表达式是一种将运算符放在操作数之后的表达式表示方法。下面是一个示例函数:
```javascript
function evaluateReversePolishNotation(tokens) {
const stack = [];
for (let token of tokens) {
if (isNumber(token)) {
stack.push(Number(token));
} else {
const operand2 = stack.pop();
const operand1 = stack.pop();
switch (token) {
case '+':
stack.push(operand1 + operand2);
break;
case '-':
stack.push(operand1 - operand2);
break;
case '*':
stack.push(operand1 * operand2);
break;
case '/':
stack.push(operand1 / operand2);
break;
default:
throw new Error('Invalid operator: ' + token);
}
}
}
return stack.pop();
}
function isNumber(token) {
return !isNaN(token);
}
```
这个函数接受一个数组 `tokens` 作为参数,这个数组包含了逆波兰表达式的操作数和运算符。它使用一个栈来辅助计算。
函数首先遍历 `tokens` 数组,对于每个 token,如果它是一个数字,就将其转换为数值并压入栈中;如果是运算符,就从栈中弹出两个操作数,进行相应的计算,并将结果压入栈中。
最后,函数返回栈顶的元素,即为逆波兰表达式的求值结果。
你可以调用这个函数,传入逆波兰表达式的 tokens 数组进行求值。希望这个函数能够帮到你!