JolyCode
@JolyCode
junior frontend developer

Как строку превратить в число, если в строке содержится математическое выражение?

При создании калькулятора, я решил значения преобразовывать в строку, например 50-5, и при нажатии на равно, я хочу чтобы оно преобразовалось в число и решилось, возможно это как это можно сделать через циклы?

Сама строка находится в переменной process, которая выводится на экран, правее результата калькулятора.(Это нужно, чтобы понимать, что вообще происходит)
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
JRK_DV
@JRK_DV
Рецепты https://codepen.io/jrkdv/full/LKLXdq
eval('6 * (5 - 4) / 3'); // = 2
Ответ написан
Комментировать
@Yagher
Вариант без eval:
function calculate(str = '6 * (5 - 4) / 3') {
	return Function(`return + ${str}`)();
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@defriz
люблю js
можно по нажатию менять переменную, отвечающую за действие, и после, если введенное является строкой, то воспользоваться методом split:
let actionCalculate = '-', inputCalculator = '50-5';

inputCalculator.split(actionCalculate).reduce((firstNumber, secondNumber) => {
    let resultNumber;
    switch (actionCalculate) {
        case '+':
           resultNumber = Number(firstNumber) + Number(secondNumber);
           break;
        case '-':
           resultNumber = Number(firstNumber) - Number(secondNumber);
           break;
        case '*':
           resultNumber = Number(firstNumber) * Number(secondNumber);
           break;
        case '/':
           resultNumber = Number(firstNumber) / Number(secondNumber);
           break;
    };
    return resultNumber;
});
Ответ написан
Комментировать
noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик
Все просто, Поместите его в Number()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы