使用 JavaScript 中的堆栈的前缀计算器
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/8 4:28:17
我们需要使用 JavaScript 中的堆栈制作一个带有 RPN(逆波兰表示法)输入法的计算器。
考虑以下输入数组 −
const arr = [1, 5, '+', 6, 3, '-', '/', 7, '*'];
处理 −
1 是操作数,推送到堆栈。
5 是操作数,推送到堆栈。
'+'是一个运算符,弹出 1 和 5,计算它们并将结果推送到 Stack。
6 是一个操作数,推送到 Stack。
3 是一个操作数,推送到 Stack。
'−' 是一个运算符,弹出 6 和 3,减去它们并将结果推送到 Stack。
'/' 是一个运算符,弹出 6 和 3,除以它们并将结果推送到 Stack。
7 是一个操作数,推送到 Stack。
'*' 是一个运算符,弹出 2 和 7,将它们相乘并将结果推送到 Stack。
最后,输出应该是 −
const output = 14;
示例
其代码为 −
const arr = [1, 5, '+', 6, 3, '−', '/', 7, '*'];
const stackCalculator = (arr = []) => {
const options = {
'+': (a, b) => a + b,
'−': (a, b) => a - b,
'*': (a, b) => a * b,
'/': (a, b) => a / b
};
const stack = [];
arr.forEach(value => {
stack.push(value in options
? options[value](...stack.splice(-2))
: value
);
});
return stack;
};
console.log(stackCalculator(arr));
输出
控制台中的输出将是 −
[14]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

