if (isNumber(item)) {
numberBuffer.push(item)
}
else if (isOperator(item)) {
emptyNumberBuffer();
result.push(new Token(OPERATOR, item))
}
else if (isLeftParanthesis(item)) {
emptyNumberBuffer();
result.push(new Token(LEFT_PARENTHESIS, item))
}
else if (isRightParanthesis(item)) {
emptyNumberBuffer();
result.push(new Token(RIGHT_PARENTHESIS, item))
}
else {
throw new Error('введены невалидные данные')
}
}) по сути меняется только в new Token первый агрумент и условие
Добавить switch как минимум. Много if else это знак, что лучше использовать switch
Или можно написать функцию, которая возвращает константы OPERATOR, LEFT_PARENTHESIS или RIGHT_PARENTHESIS в зависимости от item. Так ты избавишься от повторных result.push(new Token(, от проверок в кажом такой и похожей функции на isLeftParanthesis и от всех этих is else
Обсуждают сегодня