← Voltar na listagem

01 de abril de 20234 min de leitura

Como usar Object Literals para substituir IFs e Switches em JavaScript

Neste artigo, vamos explorar as vantagens do uso de object literals e como eles podem ser usados para substituir IFs e Switches em seu código JavaScript.

Vantagens do uso de Object Literals:

Object literals oferecem várias vantagens em relação a IFs e Switches:

  1. Legibilidade: Com object literals, seu código se torna mais legível e fácil de entender. Em vez de uma série de condições aninhadas, você tem um objeto claro e conciso que descreve as possibilidades.
  2. Manutenção: Object literals tornam a manutenção do seu código mais fácil. Se você precisa adicionar ou remover uma possibilidade, pode fazer isso facilmente no objeto, em vez de ter que alterar várias condições.
  3. Desempenho: Object literals tendem a ser mais rápidos do que IFs e Switches, especialmente quando se trata de muitas possibilidades.

Como usar Object Literals para substituir IFs e Switches: Agora que entendemos as vantagens do uso de object literals, vamos ver como eles podem ser usados para substituir IFs e Switches.

Considere o seguinte exemplo usando um Switch:

function getAnimalSound(animal) {
  switch (animal) {
    case 'cat':
      return 'Meow';
    case 'dog':
      return 'Woof';
    case 'cow':
      return 'Moo';
    default:
      return 'Unknown animal!';
  }
}`

Podemos refatorar esse código usando object literals da seguinte maneira:

const animalSounds = {
  cat: 'Meow',
  dog: 'Woof',
  cow: 'Moo',
};

function getAnimalSound(animal) {
  return animalSounds\[animal] || 'Unknown animal!';
}

Observe que estamos usando um objeto animalSounds para armazenar os sons dos animais. Em seguida, usamos uma única linha de código para retornar o som do animal correspondente. Se o animal não estiver no objeto, retornamos a mensagem "Unknown animal!".

Aqui está outro exemplo usando um IF aninhado:

function getGrade(score) {
  if (score >= 90) {
    return 'A';
  } else {
    if (score >= 80) {
      return 'B';
    } else {
      if (score >= 70) {
        return 'C';
      } else {
        if (score >= 60) {
          return 'D';
        } else {
          return 'F';
        }
      }
    }
  }
}

Podemos refatorar esse código usando object literals da seguinte maneira:

const grades = {
  90: 'A',
  80: 'B',
  70: 'C',
  60: 'D',
  default: 'F',
};

function getGrade(score) {
  const grade = Object.keys(grades).find((key) => score >= key) || 'default';
  return grades[grade];
}

Observe que estamos usando um objeto grades para armazenar as notas correspondentes a cada pontuação. Em seguida, usamos uma única linha de código para encontrar a nota correspondente à pontuação do aluno. Se a pontuação não corresponder a nenhuma chave do objeto, usamos a chave "default" para retornar a nota "F".

Conclusão:

O uso de object literals pode ser uma ótima maneira de substituir IFs e Switches em seu código JavaScript. Eles oferecem várias vantagens em relação aos blocos IFs e Switches, como legibilidade, manutenção e desempenho. Além disso, o uso de object literals pode tornar seu código mais conciso e fácil de entender. Então, da próxima vez que você estiver lidando com blocos IFs e Switches confusos, considere refatorar seu código usando object literals.