Basic Calculator II LeetCode solution in JavaScript
1/**2* @param {string} s3* @return {number}4*/5var calculate = function (s) {6const n = s.length;7let currNum = 0,8lastNum = 0,9res = 0;10let op = "+";1112for (let i = 0; i < n; i++) {13let currChar = s[i];1415if (currChar !== " " && !isNaN(Number(currChar))) {16currNum = currNum * 10 + Number(currChar);17}1819if ((isNaN(Number(currChar)) && currChar !== " ") || i === n - 1) {20if (op === "+" || op === "-") {21res += lastNum;22lastNum = op === "+" ? currNum : -currNum;23} else if (op === "*") {24lastNum *= currNum;25} else if (op === "/") {26lastNum =27Math.floor(Math.abs(lastNum) / currNum) * (lastNum < 0 ? -1 : 1);28}2930op = currChar;31currNum = 0;32}33}3435res += lastNum;36return res;37};