Streaming on Twitch twice a week

Rewriting switch statements to lookup objects


Some switch-statements can be replaced with lookup-tables in JavaScript. If every case immediately returns a value, this pattern achieves the same in fewer lines of code.

// before: switching through the values to return a number requires a lot of code
const getFeetForAnimal = animal => {
  switch (animal) {
    case 'bird':
      return 2
    case 'dog':
      return 4
    case 'fish':
      return 0
    case 'spider':
      return 8

// after: a lookup object and implicit `return` do the same in fewer lines
const getFeetForAnimal = animal => ({
  bird: 2,
  dog: 4,
  fish: 0,
  spider: 8

getFeetForAnimal('dog')     // ⇒ 4
getFeetForAnimal('gorilla') // ⇒ undefined (does not exist in lookup table)