【问题标题】:Coffeescript if else doesnt workCoffeescript 如果其他方法不起作用
【发布时间】:2016-07-21 23:55:03
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: coffeescript grunt-contrib-coffee


    【解决方案1】:

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

    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 返回值与零进行比较。

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 2011-03-07
      • 2016-04-24
      相关资源
      最近更新 更多