如何从node-dir包中过滤结果数组

时间:2014-05-30 16:50:21

标签: javascript node.js

我正在使用node-dir包(https://www.npmjs.org/package/node-dir)从路径中递归列出文件,但我无法成功为我的结果添加过滤器。

例如,我想在结果数组中只使用'mp3'扩展名的文件。 有谁知道我怎么能这样做?

    dir.files(__dirname, function(err, files.filter(ismp3file)) {
    if (err) throw err;
    console.log(files);
});
function ismp3file(elmt){return element.substr((~-element.lastIndexOf(".") >>> 0) + 2) === "mp3";}

我试图添加过滤器,但是我收到了错误。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

试试这个:

var dir = require('node-dir');

function isMp3File(file) {
    return (file.indexOf(".mp3") > -1);
}

dir.files(__dirname, function(err, files) {
    if (err) throw err;
    files = files.filter(isMp3File);
    console.log(files);
});

或者,如果您希望验证文件 .mp3结尾,则可以添加string.js作为依赖项:

var dir = require('node-dir'),
    S = require('string');

function isMp3File(file) {
    return (S(file).endsWith('.mp3'));
}

dir.files(__dirname, function(err, files) {
    if (err) throw err;
    files = files.filter(isMp3File);
    console.log(files);
});