if条件的javascript格式
可能重复:
根据值列表检查变量相等性
Javascript:使用OR操作数将SINGLE值与MULTIPLE值进行比较
首先,我是javascript方面的新手。 请告诉我有没有简单的方法来形成以下代码。
if( fileName== 'doc' || fileName=='docx' || fileName=='xls' || fileName=='xlsx' || fileName=='ppt' || fileName=='pdf' ){ Do something } else{ Do something }
var SUPPORTED_FILE_EXTENSIONS = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pdf']; if(SUPPORTED_FILE_EXTENSIONS.indexOf(fileName) != -1){ //Do Something } else { //Do Something Else }
Array.indexOf() – 请注意,这还包括有关为旧浏览器(IE IE)添加向后兼容性支持的信息。
var validTypes = /docx?|xlsx?|ppt|pdf/; if (fileName.match(validTypes)) { ... }
注意:问号, ?
,在正则表达式中表示前一个字符是可选的,因此它可以匹配doc
和docx
管道, |
,表示左右它将匹配doc
或xls
等。
也许是这样的
var filenames = ['doc','docx','xls','xlsx','ppt','pdf']; if(filenames.indexOf(fileName) >= 0 ) { // Do something } else { // Do something else }
也许switch
语句是最快的选择之一:
switch (fileName) { case "doc": case "docx": ... // ... default: // else }
您可以重新格式化以使代码更易于阅读:
if( fileName == 'doc' || fileName == 'docx' || fileName == 'xls' || fileName == 'xlsx' || fileName == 'ppt' || fileName == 'pdf' ){ Do something } else{ Do something }
或者,您可以使用诸如jQuery.inArray()
或array.indexOf()
类的构造使代码重复性array.indexOf()
:
var arr = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pdf']; if (jQuery.inArray(fileName, arr) > -1){ Do something } else{ Do something }
创建数组更容易阅读。 另外使用jQuery的$ .inArray()方法。 它的工作原理与.indexOf()类似,它的附加好处是它与旧版本的IE兼容,后者有很多缺少的数组函数。