我有一个文件数组,其中包含一组这种格式的文本文件:
[测试/ fixtureData / fixtureData2 / test3.inc, 测试/ fixtureData / fixtureData3 / test5.inc, 测试/ fixtureData / test1.inc, ,测试/ fixtureData / test6.ssi ,测试/ fixtureData / test9.html]
我想过滤此数组,以便过滤掉'.ssi'和'.html'文件。以下代码:
var recursiveReadSync = require('recursive-readdir-sync'),
var fs = require('fs');
var foundFiles = [];
var files = fs.readdirSync(url);
我已经通过一个文件进行了递归,并且为了不简单地粘贴我的整个代码,假设files数组包含上面列出的项目。我不知道如何过滤这个文件数组,我看了几个nodeJS api并且没找到任何东西
答案 0 :(得分:2)
另一种不使用正则表达式并使用path
模块的解决方案:
var path = require('path');
var filteredFiles = files.filter(function(value) {
var ext = path.extname(value);
return ['.inc', '.ssi'].indexOf(ext) == -1;
});
如果您希望配置受限扩展列表,则更容易维护。
答案 1 :(得分:0)
Array.filter
(如果您只想要ssi / inc文件,请删除not运算符!
):
files.filter(function(fileName) {
return !fileName.match(/\.(inc|ssi)$/);
});