Почему метод возвращает NaN? В общем имеется метод, принимает строку-числа с арифмитическим действием, который по сути должен возвращать результат, те преобразоваться и как нормально преобразовать, и возвратить результат сложения например?function Calculator() {
this.calculate = function (str){


return +str;
}
}
var calc = new Calculator();
console.log(calc.calculate("2 + 4")); // 6

21 Авг 2019 в 07:03
160 +1
1
Ответы
1

Проблема заключается в том, что ваш метод calculate пытается преобразовать строку в число, но такой подход не сработает, потому что вы передаете ему строку "2 + 4", а не просто число. JavaScript не понимает как интерпретировать строку с арифметическим действием как вы хотите.

Для того чтобы метод работал правильно, вам нужно разбить строку на операнды и операторы, а затем выполнить соответствующее арифметическое действие. Например, вот как можно переделать ваше решение:

function Calculator() {
this.calculate = function (str) {
var tokens = str.split(' '); // Разбиваем строку на операнды и оператор
var operand1 = parseInt(tokens[0]); // Преобразуем операнды в числа
var operator = tokens[1]; // Получаем оператор
var operand2 = parseInt(tokens[2]); // Преобразуем операнды в числа
switch (operator) {
case '+':
return operand1 + operand2;
case '-':
return operand1 - operand2;
case '*':
return operand1 * operand2;
case '/':
return operand1 / operand2;
default:
return NaN;
}
}
}
var calc = new Calculator();
console.log(calc.calculate("2 + 4")); // 6

Теперь ваш метод calculate правильно разбивает строку на операнды и оператор, выполняет соответствующее арифметическое действие и возвращает результат.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 157 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир