我可以缩短这句话吗?
if(abc=='value1' || abc=='value2' || abc=='value3') {//do something}
使其看起来与此相似:
if(abc=='value1' || 'value2' || 'value3'){//do something}
感谢。
答案 0 :(得分:9)
您有几个选择:
switch
声明。第二种形式是无效的Javascript语法。
(2)类似于:
var abcOptions = {
"value1" : true,
"value2" : true,
"value3" : true
};
if (abcOptions[abc]) {
...
}
(3)是:
switch (abc) {
case "value1":
...
break;
case "value2":
...
break;
case "value3":
...
break;
}
就个人而言,从可读性的角度来看,我不是一个忠实的粉丝,但这是一个合理的方法,有很多价值。
我不一定推荐这个,但在某些情况下它可能是一种选择。如果你只处理三个值:
if (abc == "value1" || abc == "value2" || abc == "value3") {
...
}
因为它更具可读性。
答案 1 :(得分:2)
if (['value1', 'value2', 'value3'].indexOf(abc) != -1)
这个可以保持一定的可读性,但你应该保留原始代码,除非你有更多的条件。
答案 2 :(得分:1)
您可以使用开关:
switch (abc) { case 'value1': case 'value2': case 'value3': {
// do something
}}
或以更传统的形式写作:
switch (abc) {
case 'value1':
case 'value2':
case 'value3': {
// do something
}
}
答案 3 :(得分:1)
if(abc.match(/^value[1-3]$/)) {
//doSomething....
}
答案 4 :(得分:0)
if ( abc.search(/value[123]/) != -1 ) ...do your stuff ...
答案 5 :(得分:0)
您可以使用switch
语句。像这样:
switch(abc) {
'value1':
'value2':
'value3':
// do something
break;
default:
// noop
}
但您原来的if
||
可能仍然更受欢迎。