是否有更短的方法来拥有多个if else条件?
if( suffix != 'jpg' && suffix != 'jpeg' && suffix != 'png' && suffix != 'gif'){
console.log('not an image.');
}
答案 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;
}