我正在使用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文件。事实上,我想排除它们,但我坚持使用字符串匹配而不是逻辑。
非常感谢帮助!
答案 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
返回值与零进行比较。