fix: treating unary minus in calcString
This commit is contained in:
@@ -27,7 +27,11 @@ function toRPN(expression:string) {
|
|||||||
let lastToken = ''
|
let lastToken = ''
|
||||||
|
|
||||||
for(let i = 0; i < expression.length; i++) {
|
for(let i = 0; i < expression.length; i++) {
|
||||||
if(operatorsKeys.includes(expression[i])) {
|
const char = expression[i]
|
||||||
|
if (char === '-' && (i === 0 || operatorsKeys.includes(expression[i - 1]) || expression[i - 1] === '(')) {
|
||||||
|
lastToken += char
|
||||||
|
}
|
||||||
|
else if (operatorsKeys.includes(char)) {
|
||||||
if(lastToken !== '') {
|
if(lastToken !== '') {
|
||||||
expression2.push(lastToken)
|
expression2.push(lastToken)
|
||||||
}
|
}
|
||||||
@@ -35,10 +39,10 @@ function toRPN(expression:string) {
|
|||||||
expression2.push('0')
|
expression2.push('0')
|
||||||
}
|
}
|
||||||
lastToken = ''
|
lastToken = ''
|
||||||
expression2.push(expression[i])
|
expression2.push(char)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
lastToken += expression[i]
|
lastToken += char
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user