为波兰表示法工作,我正在添加一种方法来区分我得到的字符串是否是数字,使用 isNaN 函数。这可以正常工作,直到您将 ++ 添加到字符串中。
function cuttingString(list) {
let adjustArr = list.split(' ')
let topper = []
for (let i = 0; i < adjustArr.length; i++) {
if (!isNaN(adjustArr[i])) {
topper.push(adjustArr[i])
console.log(topper)
} else {
let j = topper.pop()
let k = topper.pop()
if (adjustArr[i] === '+') {
topper.push(parseInt(j) + parseInt(k))
}
}
}
}
console.log(cuttingString('* 1 2 30 +'))
'* 1 2 30 +'
它的输出按预期工作[1,2,30]
但是,当我开始在运算符周围移动时,当我在数组的开头得到一个 NaN 时,[NaN, 1,2,30]
这令人难以置信。有关如何解决此问题或其他解决方法的任何想法?