1

我正在使用带有 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 文件。事实上,我想排除它们,但我坚持字符串匹配而不是逻辑。

帮助表示赞赏!

4

1 回答 1

2

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

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

我们得到:

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

所以你真的把falsetoindexOf作为它的第二个参数,这没有多大意义。

我想你想说的是:

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

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

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

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

于 2016-04-02T03:52:13.537 回答