Coffeescript如果不起作用

时间:2016-04-02 03:24:24

标签: coffeescript grunt-contrib-coffee

我正在使用coffeescript和grunt,我试图只包含JS文件文件模式“* .min.js”。不知何故,我的测试失败,所有文件都被包含在内。所以我的if语句总是返回true。我如何使这项工作?

getJsDependencies = ->
  js_dependencies_path = path.join __dirname, "js", "dep"
  paths = []
  for js_file in fs.readdirSync(js_dependencies_path)
    file_path = path.join __dirname, "js", "dep", js_file
    console.log js_file
    if js_file.indexOf ".min.js", 0 > 0
      paths.push file_path
  paths  

我尝试了js_file.indexOf的各种组合,但我没有运气,只包含.min.js文件。事实上,我想排除它们,但我坚持使用字符串匹配而不是逻辑。

非常感谢帮助!

1 个答案:

答案 0 :(得分:2)

如果我们将调用括号的隐式函数添加到

if js_file.indexOf ".min.js", 0 > 0

我们得到:

if js_file.indexOf(".min.js", 0 > 0)

因此,您确实将false传递给indexOf作为其第二个参数,这并没有多大意义。

我想你想这样说:

if js_file.indexOf(".min.js", 0) > 0

或者因为String.prototype.indexOf的第二个参数无论如何都是零:

if js_file.indexOf('.min.js') > 0

但即使在这里,您也需要在调用indexOf时使用括号,以确保您将indexOf返回值与零进行比较。