Skip to content

Instantly share code, notes, and snippets.

@gastongouron
Created November 8, 2015 02:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gastongouron/e137652c46421ba0aa6e to your computer and use it in GitHub Desktop.
Save gastongouron/e137652c46421ba0aa6e to your computer and use it in GitHub Desktop.
Javascript RPN Calculator
// JSRPN - a simple console display javaScript RPN calculator
// by Lars Johnson and Paul Gaston Gouron
var RPN = function(string){
var poppush = function () {
stack.pop()
stack.pop()
stack.push(value)
}
var input = string.split(" ");
var stack = []
var value = 0
for (var s = 0; s < input.length; s++) {
if (isNaN(input[s]) === false) { // Equals Number
stack.push(input[s]); // Push onto stack
}
else { // ELSE do math
var first = Number(stack[stack.length-1])
var second = Number(stack[stack.length-2])
switch (input[s]) {
case "+":
var value = first + second
poppush()
break
case "-":
var value = first - second
poppush()
break
case "*":
var value = first * second
poppush()
break
case "/":
var value = first / second
poppush()
break
}
}
}
return parseInt(stack)
}
// Test
console.log(RPN("70 10 4 + 5 * -"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment