Ditching Switch Case: Uma abordagem mais limpa e flexível usando objetos em JavaScript

Feb 22 2023
Em JavaScript, você pode usar objetos em vez de instruções switch case para obter o mesmo resultado. Exemplo simples: Neste exemplo, criamos um objeto chamado ações que contém chaves para cada ação possível e valores que são funções que executam a ação associada.
Objetos sobre a caixa do interruptor

Em JavaScript, você pode usar objetos em vez de instruções switch case para obter o mesmo resultado.

Exemplo simples:

const actions = {
  'create': function() { 
    console.log('create action');
  },
  'update': function() {
    console.log('update action');
  },
  'delete': function() {
    console.log('delete action');
  },
};

const action = 'create';

if (action in actions) {
  actions[action]();
} else {
  console.log('Invalid action');
}

Neste exemplo, criamos um objeto chamado actionsque contém chaves para cada ação possível e valores que são funções que executam a ação associada.

Em seguida, usamos o inoperador para verificar se o dado actioné uma chave no actionsobjeto. Se for, chamamos a função correspondente usando actions[action]().

Se não for uma chave no actionsobjeto, podemos tratar o caso de ação inválida apropriadamente.

Exemplo de calculadora:

const calculator = {
  '+': function(a, b) { return a + b },
  '-': function(a, b) { return a - b },
  '*': function(a, b) { return a * b },
  '/': function(a, b) { return a / b },
};

const operator = '-';
const num1 = 10;
const num2 = 12;

if (operator in calculator) {
  const result = calculator[operator](num1, num2);
  console.log(`${num1} ${operator} ${num2} = ${result}`);
} else {
  console.log(`Invalid operator: ${operator}`);
}

Neste exemplo, criamos um objeto chamado calculatorque contém chaves para cada operador possível (+, -, *, /) e valores que são funções que realizam o cálculo associado.

Em seguida, usamos o inoperador para verificar se o dado operatoré uma chave no calculatorobjeto. Se for, chamamos a função correspondente usando calculator[operator](num1, num2)para obter o resultado.

Se não for uma chave no calculatorobjeto, podemos tratar o caso do operador inválido de forma apropriada.

Essa abordagem torna o código mais escalável, pois é fácil adicionar novos operadores à calculadora simplesmente adicionando um novo par chave-valor ao calculatorobjeto. Também torna o código mais legível e fácil de manter.

Conclusão

Essa abordagem é útil quando você tem um grande número de casos para lidar, pois pode tornar o código mais legível e fácil de manter.

Além disso, os objetos são mais fáceis de estender e modificar do que as instruções switch case.

Compartilhe o artigo se você aprendeu algo bom!