·
1 min read

JavaScript Tip: Replace Switch Statements With Object Literals

JavaScript Tip: Replace Switch Statements With Object Literals Image

I'm not a big fan of JavaScript's switch statement. Its syntax is hard to remember and can cause tricky bugs if you forget to add a break statement for every case.

Let's take a look at an example:

index.js
const getRole = (id) => { switch (id) { case 11: return 'ADMIN' case 22: return 'OPERATOR' default: return 'USER' } }

I prefer using JavaScript's object literals over switch statements as the code is faster, more readable, and less verbose.

For each case we would have in the switch statement, we need to define an object key for each case:

index.js
const getRole = (id) => { const rolesMap = { 11: 'ADMIN', 22: 'OPERATOR', 33: 'USER', } return rolesMap[id] }

Finally, let's handle the default case of the switch statement by adding a default key:

index.js
const getRole = (id) => { const defaultKey = 33 const rolesMap = { 11: 'ADMIN', 22: 'OPERATOR', 33: 'USER', } return rolesMap[id] ?? rolesMap[defaultKey] }

We try to access the value using rolesMap[id] and use the nullish coalescing operator (??) to set the default value if the value is undefined or null.