Coffeescript中IF语句中的多个OR

时间:2014-05-07 15:47:20

标签: coffeescript

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

我有类似这样的基本内容:

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

     alert('extension must be jpg, pdf, jpeg')

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

2 个答案:

答案 0 :(得分:6)

CoffeeScript有一个in operator,所以你可以说element in array让逻辑变得更紧凑:

  

您可以使用in来测试数组存在,[...]

在你的情况下:

if ext !in ['jpeg', 'pdf', 'jpg']
    alert('extension must be jpg, pdf, jpeg')

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

if (ext !== 'jpeg' && ext !== 'pdf' && ext !== 'jpg') {
  alert('extension must be jpg, pdf, jpeg');
}

而不是更昂贵的东西。

答案 1 :(得分:2)

您忘记添加&&

if ext != 'jpeg' && ext != 'pdf' && ext != 'jpg'
     alert('extension must be jpg, pdf, jpeg')