Возвращает undefined

Рейтинг: 0Ответов: 1Опубликовано: 12.05.2023

Всем привет! Пишу простой калькулятор:

const operators = {
  '-': (a, b) => a - b,
  '+': (a, b) => a + b,
  '*': (a, b) => a * b,
  '/': (a, b) => a / b,
};

function calculator(string) {
  const arr = string.split(' ');
  const a = Number(arr.shift())
  const b = Number(arr.pop())
  
  arr.forEach((token) => {
    if (token in operators) {
      return operators[token](a, b);
    }
  });
};

console.log(calculator('3 + 4'))

Пытаюсь осуществить операцию с помощью объекта который по оператору возвращает результат. В консоле выводиться undefined. Насколько я пока понял проблема в том, что я вызываю функцию((a, b) => a - b) в forEach. Подскажите пожалуйста, как правильно реализовать такой подход?

Ответы

▲ 0


function calculator(string) {
  const operators = {
        '-': (a, b) => a - b,
        '+': (a, b) => a + b,
        '*': (a, b) => a * b,
        '/': (a, b) => a / b,
      };
  const arr = string.split(' ');
  const a = Number(arr.shift())
  const b = Number(arr.pop())
  
  arr.forEach((token) => {
    if (token in operators) {
      result = operators[token](a, b);
    }
  });
  return result;
};

console.log(calculator('3 + 4'))

вернет 7