基本的coffeescript发现是否在阵列中

时间:2013-09-12 08:03:54

标签: javascript arrays if-statement coffeescript

在咖啡脚本中,我试图弄清楚数组中是否包含某些内容。但似乎无法弄清楚正确的语法。如果没有迭代它们,有没有办法做到这一点?

谢谢,

  if $(this).val() is in ["needs_cover","comatose"]
    $("#head_count").hide()
  else
    $("#head_count").show()

2 个答案:

答案 0 :(得分:6)

只需删除is

即可
if $(this).val() in ["needs_cover","comatose"]
    $("#head_count").hide()
  else
    $("#head_count").show()

这将转换为以下JavaScript:

var _ref;

if ((_ref = $(this).val()) === "needs_cover" || _ref === "comatose") {
  $("#head_count").hide();
} else {
  $("#head_count").show();
}

答案 1 :(得分:0)

如果这是一个常见的用例,你可以编写一个函数,这也可以让你编写一个更紧凑的例程,如下所示:

hideShowFn = (valSelector, hideShowElSelector, compareArr) ->
    if $(valSelector).val() in compareArr then return $(hideShowElSelector).hide()
    $(hideShowElSelector).show()

我更喜欢上面这样做,因为它会使代码变得扁平化。这是我的偏好。

您可以像这样调用函数:

hideShowFn this, '#head_count', ['needs_cover', 'comatose']