I was trying to understand ternary operator into normal if else condition.
stateable = data.length > 0 ? data[0].list > data[0].somelist ? Product.ADDING : Product.REMOVING : Product.NOTHING
how to understand this multiple nested condition
Advertisement
Answer
It’s equivalent to the following:
let stateable; if (data.length === 0) { statable = Product.NOTHING; } else if (data[0].list > data[0].somelist) { statable = Product.ADDING; } else { statable = Product.REMOVING; }
The conditional operator approach could be refactored to be more readable by putting the NOTHING condition first, though, if you wanted:
const stateable = data.length === 0 ? Product.NOTHING : data[0].list > data[0].somelist ? Product.ADDING : Product.REMOVING;