JSFiddle - React, Tailwind, and code Playground

by Torsten Walter

HTML

<div id='out'>
</div>

JavaScript

/*
/ to be honest, this one was a bit difficult to me and I had to do some researches on google
/ to understand the calculation logic. I did not copy/paste anything and I took some time to understand
/ how to make it works.
*/

const operators = ['+', '-', '*', '/'];

function isOp (char) {
  return operators.indexOf(char) > -1;
}

function calculate (expression) {
  const stack = [];
  const arrayExp = expression.split(' ');
  arrayExp.forEach((current) => {
    if (!isOp(current)) {
      stack.push(current)
    } else {
      const n2 = stack.pop()
      const n1 = stack.pop()
      stack.push(eval(n1 + current + ' ' + n2));
    }
  })
  return stack.pop();
}

document.getElementById('out').innerHTML = calculate('1 2 +')