6

重複の可能性:
値のリストに対して変数の等価性をチェックする
Javascript: OR オペランドを使用した複数の値に対する SINGLE 値の比較

まず第一に、私はJavaScript側が初めてです。以下のコードをフォーマットする簡単な方法があれば教えてください。

if( fileName== 'doc' || fileName=='docx' || fileName=='xls' || fileName=='xlsx' || fileName=='ppt' || fileName=='pdf' ){

Do something

} else{

    Do something

}
4

6 に答える 6

10
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)の下位互換性サポートの追加に関する情報も含まれていることに注意してください。

于 2013-01-08T15:41:31.330 に答える
9
var validTypes = /docx?|xlsx?|ppt|pdf/;

if (fileName.match(validTypes)) {
    ...
}

注:?正規表現のクエスチョン マーク , は、前の文字がオプションであるため両方docに一致することを示しdocx、パイプ ,はまたはなどに一致することを示します。|ordocxls

于 2013-01-08T15:42:19.317 に答える
3

多分何かのような

var filenames = ['doc','docx','xls','xlsx','ppt','pdf'];
if(filenames.indexOf(fileName) >= 0 ) {
  // Do something
} else {
    // Do something else
}
于 2013-01-08T15:43:38.873 に答える
1

おそらくswitchステートメントは最速のオプションの1つです:

switch (fileName) {
    case "doc":
    case "docx":
    ...
        // ...
    default:
        // else
}
于 2013-01-08T15:42:04.043 に答える
0

コードを読みやすくするために再フォーマットすることができます。

if( fileName == 'doc' || 
    fileName == 'docx' || 
    fileName == 'xls' || 
    fileName == 'xlsx' || 
    fileName == 'ppt' || 
    fileName == 'pdf' ){
    Do something
} else{
    Do something
}

jQuery.inArray()または、またはarray.indexOf():などの構文を使用して、コードの繰り返しを少なくすることもできます 。

var arr = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pdf'];
if (jQuery.inArray(fileName, arr) > -1){
    Do something
} else{
    Do something
}
于 2013-01-08T15:44:39.480 に答える
0

配列を作成すると読みやすくなります。さらに、jQuery の $.inArray() メソッドを使用します。.indexOf() と同じように機能し、多くの配列関数が欠落している古いバージョンの IE と互換性があるという追加の利点があります。

于 2013-01-08T16:13:07.657 に答える