How To Make This If Statement Shorter?
Can I make this statement shorter? if(abc=='value1' || abc=='value2' || abc=='value3') {//do something} to make it look similar to this: if(abc=='value1' || 'value2' || 'value3'){
Solution 1:
You have a couple options:
- Leave it as it is;
- Use an associative array/object;
- Use a
switch
statement.
The second form is not valid Javascript syntax.
(2) is something like:
var abcOptions = {
"value1" : true,
"value2" : true,
"value3" : true
};
if (abcOptions[abc]) {
...
}
(3) is:
switch (abc) {
case"value1":
...
break;
case"value2":
...
break;
case"value3":
...
break;
}
Personally I'm not a huge fan of this from a readability point of view but it's a reasonable approach with a large number of values.
I don't necessarily recommend this but it might be an option in certain circumstances. If you're only dealing with three values stick with:
if (abc == "value1" || abc == "value2" || abc == "value3") {
...
}
as it's much more readable.
Solution 2:
if (['value1', 'value2', 'value3'].indexOf(abc) != -1)
This one manages to remain somewhat readable, but you should leave your original code as-is unless you have way more conditions.
Solution 3:
You can use a switch:
switch (abc) { case'value1': case'value2': case'value3': {
// do something
}}
Or written in a more traditional form:
switch (abc) {
case'value1':
case'value2':
case'value3': {
// do something
}
}
Solution 4:
if(abc.match(/^value[1-3]$/)) {
//doSomething....
}
Solution 5:
if ( abc.search(/value[123]/) != -1 ) ...do your stuff ...
Post a Comment for "How To Make This If Statement Shorter?"