Coffeescript中IF语句中的多个OR

J C*_*llo 1 coffeescript

在我继续之前,我试图在Coffeescript中验证多个语句.

我有一些基本的东西:

 if ext != 'jpeg' || ext != 'pdf' || ext != 'jpg'

     alert('extension must be jpg, pdf, jpeg')
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?我是咖啡新手并且认为基本的东西应该不难做到.

mu *_*ort 6

CoffeeScript有一个in操作符,所以你可以说element in array使逻辑更紧凑:

您可以in用来测试阵列存在,[...]

在你的情况下:

if ext !in ['jpeg', 'pdf', 'jpg']
    alert('extension must be jpg, pdf, jpeg')
Run Code Online (Sandbox Code Playgroud)

当前的CoffeeScript编译器非常智能,能够识别该模式并生成此JavaScript:

if (ext !== 'jpeg' && ext !== 'pdf' && ext !== 'jpg') {
  alert('extension must be jpg, pdf, jpeg');
}
Run Code Online (Sandbox Code Playgroud)

而不是更昂贵的东西.