Introduction
We often overuse if/else blocks. We use them throughout our code base every time we want to run optional block of codes or return different outputs based on an input value or a condition.
Example
Let's say I have a function that takes an input (string) and modifies that string.
To keep things simple, the function receives a week number, week 1
and should return week one
Using an if/else conditionals, we can have code like so
function CurrentWeekLabel(value) {
let weekNumber = value[value.length - 1]
if (weekNumber === '1') {
weekNumber = 'one'
}
if (weekNumber === '2') {
weekNumber = 'two'
}
else if (weekNumber === '3') {
weekNumber = 'three'
}
else if (weekNumber === '4') {
weekNumber = 'four'
}
else if (weekNumber === '5') {
weekNumber = 'five'
}
return value
.slice(0, -1)
.concat(weekNumber)
}
This function serves us well. However, there is an alternative that is less cluttered, less repetitive and more readable.
Alternative
We can use object lookups as an alternative, which is cleaner
function CurrentWeekLabel(value) {
let weekNumber = value[value.length - 1]
let options = {
'1': 'one',
'2': 'two',
'3': 'three',
'4': 'four',
'5': 'five',
};
return value
.slice(0, -1)
.concat(options[weekNumber] || weekNumber)
}
Top comments (0)