Substituindo a instrução switch por Object Literal

JavaScript 16 de Set de 2020
NLW Expert | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

Object Literal é um bom substituto da instrução procedural switch. O switch apresenta alguns problemas — o design do código é bem antigo e procedural; dificulta encontrar um possível bug e podemos esquecer de colocar a instrução break; no final de cada case, permitindo passar por cada um sem necessidade; por último o código com switch fica um pouco mais verboso.

Então, a ideia é utilizar objetos literais (object literals) ao invés do velho switch.

Vamos ver um exemplo de código comparando os dois e você poderá tirar suas próprias conclusões.

Abaixo temos a mesma funcionalidade implementada com switch e com object literals:

❌ Switch

A instrução switch é usada para executar ações diferentes de acordo com a entrada, ou seja, é uma estrutura condicional.

No código abaixo, temos um switch que irá atribuir na variável day um número inteiro que corresponde o dia da semana da data atual que está sendo obtido através da instrução: new Date().getDay().

let day;

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
    day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
    break;
  default:
    throw new Error("Hey! We have only 7 days in the week");
}

console.log(`What day of the week is today? ${day}`);

// Resultado para o dia 16/09/2020:
// What day of the week is today? Wednesday
Exemplo de Código com switch
NLW Expert | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

✅ Object Literal

É uma maneira rápida e literal de criar um objeto, passando entre o par de chaves { } a propriedade e o seu respectivo valor: let obj = { name: "Rocketseat",  bootcamp: "Go Stack"}

No código abaixo, temos um objeto literal dayOfTheWeek que possui os atributos de 0 a 6 e o seus respectivos valores em formato de String com os nomes dos dias da semana.

const dayOfTheWeek = {
  0: "Sunday",
  1: "Monday",
  2: "Tuesday",
  3: "Wednesday",
  4: "Thursday",
  5: "Friday",
  6: "Saturday",
};

console.log(
  `What day of the week is today? ${dayOfTheWeek[new Date().getDay()]}`
);

// Resultado para o dia 16/09/2020:
// What day of the week is today? Wednesday
Exemplo de Código com object literal

👊 Conclusão

Mesmo escrevendo funcionalidade semelhantes, percebemos que o código com Object Literal possui menos linhas de código, tendo uma melhor legibilidade e não corremos o risco de esquecer algum break.

Existem vários casos de uso de como substituir o switch pelo object literals. Vamos deixar alguns links caso queira se aprofundar no assunto, e levar seu código para um próximo nível! 🚀

E aí, o que achou da nossa sugestão?

Espero que tenha curtido! 💜

O aprendizado é contínuo e sempre haverá um próximo nível! 🚀

NLW Expert | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

Marcadores

Thiago Marinho

Dev Apaixonado por Tecnologia & Educação! Evolua rápido como a tecnologia, aprendizado é contínuo e sempre haverá um próximo nível. Boost Yourself! 🚀