使用堆疊的 JavaScript 字首計算器


我們需要使用 JavaScript 中的堆疊以 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]

更新日期: 2020 年 11 月 23 日

超過 1 萬的瀏覽量

啟動您的 職業生涯

完成課程以取得認證

開始學習
廣告
© . All rights reserved.