使用JS是否存在多个if else条件的简写?

时间:2014-03-03 01:26:23

标签: javascript if-statement

是否有更短的方法来拥有多个if else条件?

if( suffix != 'jpg' && suffix != 'jpeg' && suffix != 'png' && suffix != 'gif'){

    console.log('not an image.');

}

3 个答案:

答案 0 :(得分:6)

使用数组可以看作是一种速记,虽然它确实增加了(可忽略不计的恕我直言)开销:

if (['jpg', 'jpeg', 'png', 'gif'].indexOf(suffix) === -1) {
  console.log('not an image.');
}

编辑:使用 RegExp

更短
if (!/jpe?g|png|gif/.test(suffix)) {
  console.log('not an image.');
}

答案 1 :(得分:4)

而不是带有 indexOf 的数组,您可以在或 hasOwnProperty 中使用带有的ojbect:

if (suffix in {jpg:'', jpeg:'', png:'', gif:''})

if ({jpg:'', jpeg:'', png:'', gif:''}.hasOwnProperty(suffix))

如果您可以将对象用于其他事物,则对象方法很有效。

答案 2 :(得分:2)

也许不会更短,但对于所有案例陈述爱好者:

switch(suffix){
   case 'jpg':
   case 'jpeg':
   case 'png':
   case 'gif':
       break;
   default:
       console.log('not an image.');
       break;
}