Shorthand For If-else Statement
Solution 1:
Using the ternary :?
operator .
var hasName = (name === 'true') ? 'Y' :'N';
The ternary operator lets us write shorthand if..else
statements exactly like you want.
It looks like:
(name === 'true')
- our condition
?
- the ternary operator itself
'Y'
- the result if the condition evaluates to true
'N'
- the result if the condition evaluates to false
So in short (question)?(result if true):(result is false)
, as you can see - it returns the value of the expression so we can simply assign it to a variable just like in the example above.
Solution 2:
You can use an object as a map:
var hasName = ({
"true" : "Y",
"false" : "N"
})[name];
This also scales nicely for many options
var hasName = ({
"true" : "Y",
"false" : "N",
"fileNotFound" : "O"
})[name];
(Bonus point for people getting the reference)
Note: you should use actual booleans instead of the string value "true" for your variables indicating truth values.
Solution 3:
Try this
hasName = name ? 'Y' : 'N';
Solution 4:
Try like
var hasName = 'N';
if (name == "true") {
hasName = 'Y';
}
Or even try with ternary operator
like
var hasName = (name == "true") ? "Y" : "N" ;
Even simply you can try like
var hasName = (name) ? "Y" : "N" ;
Since name has either Yes
or No
but iam not sure with it.
Solution 5:
Most answers here will work fine if you have just two
conditions in your if-else. For more which is I guess what you want, you'll be using arrays.
Every names corresponding element in names
array you'll have an element in the hasNames
array with the exact same index. Then it's a matter of these four lines.
names = "true";
var names = ["true","false","1","2"];
var hasNames = ["Y","N","true","false"];
var intIndex = names.indexOf(name);
hasName = hasNames[intIndex ];
This method could also be implemented using Objects and properties as illustrated by Benjamin.
Post a Comment for "Shorthand For If-else Statement"