Алгоритм кодовых войн

Проблема

Учитывая два числа и арифметический оператор, вернуть результат двух чисел, к которым был применен этот оператор.

두 개의 숫자와, 산술 연산자가 주어진다.

연산자가 사용된 두 숫자의 결과를 반환해라.

Решение 01

function arithmetic(a, b, operator) {
  if (operator === 'add') return a + b;
  if (operator === 'subtract') return a - b;
  if (operator === 'multiply') return a * b;
  if (operator === 'divide') return a / b;
}
arithmetic(8, 4, 'add');       // 12
arithmetic(8, 4, 'subtract');  // 4
arithmetic(8, 4, 'multiply');  // 32
arithmetic(8, 4, 'divide');    // 2

Решение 02

function arithmetic(a, b, operator) {
  switch (operator) {
    case 'add':
      return a + b;
    case 'subtract':
      return a - b;
    case 'multiply':
      return a * b;
    case 'divide':
      return a / b;
  }
}
arithmetic(8, 4, 'add');       // 12
arithmetic(8, 4, 'subtract');  // 4
arithmetic(8, 4, 'multiply');  // 32
arithmetic(8, 4, 'divide');    // 2

Решение 03

function arithmetic(a, b, operator) {
  const obj = {
    add: a + b,
    subtract: a - b,
    multiply: a * b,
    divide: a / b
  };
  return obj[operator];
}
arithmetic(8, 4, 'add');       // 12
arithmetic(8, 4, 'subtract');  // 4
arithmetic(8, 4, 'multiply');  // 32
arithmetic(8, 4, 'divide');    // 2