Can you please take a look at this and let me know is there a way to use 3 conditions inside a Ternary Operator?
Or is there any better idea rather than legacy if conditions to achieve this?
let tmpgender = $('#gender').text().trim(); let gender = null; tmpgender == "female" ? gender : 'f'; tmpgender == "male" ? gender : 'm'; tmpgender == "unisex" ? gender : 'u'; console.log(gender);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="gender">female</div>
Use an object indexed by tmpgender
instead:
const genders = { female: 'f', male: 'm', unisex: 'u' }; const tmpgender = $('#gender').text().trim(); const gender = genders[tmpgender]; console.log(gender);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="gender">female</div>
If you had to use the conditional operator, you could do
const genders = { female: 'f', male: 'm', unisex: 'u' }; const tmpgender = $('#gender').text().trim(); const gender = tmpgender === 'female' ? 'f' : tmpgender === 'male' ? 'm' : tmpgender === 'unisex' ? 'u' : 'unknown'; console.log(gender);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="gender">female</div>
But that's ugly and hard to read, I strongly prefer the object method.
Try Following
let tmpgender = $('#gender').text().trim(); let gender = tmpgender == "female" ? 'f' : tmpgender == "male" ? 'm' : 'u'; console.log(gender);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="gender">female</div>
Hmmm... In your case no need for ternary
const tmpgender = "male"; let gender = tmpgender.charAt(0); console.log(gender);
I think mplungjan provided a good answer but still If you want to check multiple conditions with Ternary operator, then here is an option:
<script>
var tmpgender = $('#gender').text().trim();
var gender = null;
gender = tmpgender == "female" ? 'f': tmpgender == "male" ? 'm' : tmpgender == "unisex" ? 'u' : null;
</script>
I would suggest to use simpler methods like fetching first letter.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.