在JavaScript中使用堆栈的前缀计算器
我们需要使用在JavaScript中使用Stacks的RPN(反向抛光表示法)输入法来制作计算器。
请看以下输入数组-
const arr = [1, 5, '+', 6, 3, '-', '/', 7, '*'];
流程-
1是一个操作数,压入堆栈。
5是一个操作数,压入堆栈。
“+”是运算符,弹出1和5,计算它们并将结果推入堆栈。
6是一个操作数,压入堆栈。
3是一个操作数,压入堆栈。
'-'是一个运算符,弹出6和3,将它们相减并将结果推入堆栈。
'/'是一个运算符,弹出6和3,将它们相除并将结果压入堆栈。
7是一个操作数,压入堆栈。
'*'是一个运算符,弹出2和7,将它们相乘并将结果推入堆栈。
最后,输出应为-
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]
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练