I have this code that uses if else statement. I would like to minimize this.
var str = "";
var isPreview=true;
var dl = Files.findOne({_id:item._id}).link();
var filename = item.name.split('.').pop().toLowerCase();
if(filename == "wav" || filename == "mp3" || filename == "ogg" ) {
str = "fa fa-file-audio-o";
isPreview=false;
}
else
if(filename == "jpg" || filename == "jpeg" || filename == "gif" || filename == "bmp" || filename == "png" )
str = "fa fa-file-image-o";
else
if(filename == "flv" || filename == "wmv" || filename == "mp4" || filename == "3gp" || filename == "webm" ) {
str = "fa fa-file-movie-o";
isPreview=false;
}
else
if(filename == "pdf" )
str = " fa fa-file-pdf-o";
else
if(filename == "txt" || filename == "rtf" )
str = " fa fa-file-text-o";
else
if(filename == "xls" || filename == "xlsx" ) {
str = " fa fa-file-excel-o";
isPreview=false;
}
else
if(filename == "doc" || filename == "docx" ) {
str = " fa fa-file-word-o";
isPreview = false;
}
else
if(filename == "ppt" || filename == "pptx" ) {
str = " fa fa-file-powerpoint-o";
isPreview = false;
}
else
if(filename == "zip" || filename == "rar") {
str = " fa fa-file-zip-o";
isPreview = false;
}
else{
isPreview=false;
str = " fa fa-file";
}
if(Files.findOne({_id:item._id}).infected){
isPreview=false;
str = " fa fa-ban";
}
After executing this codes, the output should be a String and a Boolean. How can I use array to this issue?
As you can see,in each if else statement, they have different number of expressions. Sometimes it will check only 1 file type. sometimes it will check multiple file types.
How can I use array or object in this issue?