2 Tips to Clean Ugly if Statements

petroskoulianos

Petros Koulianos

Posted on January 18, 2021

2 Tips to Clean Ugly if Statements

Conditional statements are the backbone of programming but lot of times business requirements can lead to create long nested and ugly if statements.
This post demonstrates some tips to clean those ugly situations.

#1 Complex condition expressions

Long and complex condition expressions are obvious an ugly situation

// weird 😣😣
if((temp === 0) || (temp > 0 && temp < 5 && gusts > 10) || (snowing)){
//code block
}
Enter fullscreen mode Exit fullscreen mode

Solution create a separate function to return a boolean that represents the long condition

// better 😁😁
if(isColdOutside(temp, windGusts, snowing)){
//code block
}

function isColdOutside(temp, windGusts, snowing){
  if(temp === 0){
   return true
  }
  if(snowing){
   return true
  }
  if(temp > 0 && temp < 5 && windGusts > 10){
   return true
  }
  return false
}
Enter fullscreen mode Exit fullscreen mode

#2 Ternary into ternary

This is another situation that is ugly and the human brain struggle to parse

// weird 😣😣
let temp = 6
let windGusts = 20
let isFreezingOutside = temp < 5 ? (windGusts > 15 ? true : false) : (snowing ? true : false)
Enter fullscreen mode Exit fullscreen mode

Solution again here we can create smaller functions to make it cleaner

// better 😁😁
let temp = 6
let windGusts = 20

let isFreezingOutside = temp < 1 ? isSnowing(snowing) : isWindStrong(windGusts)

function isWindStrong(windGusts){
  if(windGusts > 15){
   return true
  }
return false
}

function isSnowing(snowing){
  if(snowing){
   return true
  }
return false
}
Enter fullscreen mode Exit fullscreen mode

This was two quick tips to clean ugly if statements.

Thanks for reading 😎😎😎

twitter @petroskoulianos

πŸ’– πŸ’ͺ πŸ™… 🚩
petroskoulianos
Petros Koulianos

Posted on January 18, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

The Accessor Protocol
javascript The Accessor Protocol

August 6, 2024

The Renaissance of Meteor.js
javascript The Renaissance of Meteor.js

July 26, 2024

Eager loading vs lazy loading
javascript Eager loading vs lazy loading

December 18, 2023

Understanding require function (Node.js)
javascript Understanding require function (Node.js)

October 3, 2023