I often have the pleasure of refactoring this mess.
And sometimes it's not just 2 ternaries but like 4 or 5 thrown together.
It took like half an hour to even understand what was going on.
If you do this, you are just an evil person...
This shit always leaves me wondering who even writes this crap. The answer is more often than not a junior that just discovered code golf thinking he’s oh so clever. You learn to appreciate boring code, with experience…
Until JS supports switch expressions, nested ternaries will continue to be the most effective way to write multi-state conditionals.
Also, stop using linting tools that prioritize consistency over human readability, and then complaining that the code they generate is not easily-readable by humans.
I've been a software developer for 7 years and I've grown to hate terneries entirely. They only hinder readability. Readability is the biggest factor in maintainability. Code that is hard to maintain makes bugs.
I always mark PRs with nested terneries as "needs work".
Or anywhere for that matter. Have you got nested IF()s in Excel? For crying out loud, pop into VBA and write it up as a custom function like a human being.
Oh, I didn't know that Excel could do JS. I haven't touched it since I got out of the field a decade or so ago.
One of the things I did was quite a bit of Excel consulting and training. I remember the joy of trying to decode massive formula cells, especially when there were nested IF()s. My rule of thumb was that anything with more than three functions in one formula got converted to a custom function, even if it didn't have general utility.
I found that anyone who could construct and understand those massive formulas were generally capable of dealing with the equivalent VBA with a bit of training. Also, it was generally true that if they couldn't handle the relevant VBA, they were in no position to deal with massive formulas anyway.
Seems a bit shitty they mention the article by Eric Elliott (one of the first search results if you search "nested ternaries") but they don't take his advice.
This doesn't seem ugly to me at all (left out animal so I didn't have to type as much):