var evalRPN = function(tokens) {
let arr=[]
const map = new Map([
["+", (a, b) => a * 1 + b * 1],
["-", (a, b) => b - a],
["*", (a, b) => b * a],
["/", (a, b) => (b / a) | 0]
]);
for (let x of tokens){
//如果不是+-*/,则入栈
if(!map.has(x)){
arr.push(x)
continue
}
//处理后的值入栈
arr.push(map.get(x)(arr.pop(),arr.pop()))
}
return arr[0]
};
-
遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中。