From b208a3c10a681d5b0ee4cfea32f7b9a00d6d19f7 Mon Sep 17 00:00:00 2001 From: Rohit Tanwar <31792358+kriadmin@users.noreply.github.com> Date: Mon, 1 Jan 2018 22:10:17 +0530 Subject: [PATCH] Update RPNSolver.md --- snippets/RPNSolver.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/snippets/RPNSolver.md b/snippets/RPNSolver.md index 2cfb59be5..042c4194c 100644 --- a/snippets/RPNSolver.md +++ b/snippets/RPNSolver.md @@ -4,13 +4,13 @@ Solves the given reverse polish notation ``` js const RPNSolver = RPN => { - const operators = {'*' : (a,b) => a * b, '+' : (a,b) => a + b, '-' : (a,b) => a - b, '/' : (a,b) => a / b, '**': (a,b) => a ** b} - let [stack,solve] = [[],RPN.replace(/\^/g,'**').split(/\s+/g).filter(el => !/\s+/.test(el) && el !== '')] + const OPERATORS = {'*' : (a,b) => a * b, '+' : (a,b) => a + b, '-' : (a,b) => a - b, '/' : (a,b) => a / b, '**': (a,b) => a ** b} + const [stack,solve] = [[],RPN.replace(/\^/g,'**').split(/\s+/g).filter(el => !/\s+/.test(el) && el !== '')] solve.forEach(symbol => { if(!isNaN(parseFloat(symbol)) && isFinite(symbol)) {stack.push(symbol)} - else if (Object.keys(operators).includes(symbol)) { - let [a,b] = [stack.pop(),stack.pop()] - stack.push(operators[symbol](parseFloat(b),parseFloat(a))) + else if (Object.keys(OPERATORS).includes(symbol)) { + const [a,b] = [stack.pop(),stack.pop()] + stack.push(OPERATORS[symbol](parseFloat(b),parseFloat(a))) } else { throw `${symbol} is not a recognized symbol` } } )