数组过滤

时间:2018-02-01 15:20:09

标签: javascript node.js

我编写了一个程序,该程序应该在定义的文件夹中输出具有已定义扩展名的文件的所有名称,但是当我添加以下行时:

list = list.filter(file => { file !== fileExtension });

我想过滤名称与扩展名相匹配的文件(例如一个名为“txt”的文件),我没有输出。

这是完整的代码(我使用节点JavaScript来运行它):

const fs = require('fs');

const dirPath = process.argv[2];
const fileExtension = process.argv[3];

fs.readdir(dirPath, (err, list) => {
    if (err) {
        return console.log('An error occurred while reading directory: ' + err);
    }  

    list = list.filter(file => { file !== fileExtension }); // No output when I add this line

    list = list.filter(file => file.split('.')[file.split('.').length - 1] === fileExtension);

    list.forEach((file) => {  
        console.log(file);
    });

});

1 个答案:

答案 0 :(得分:1)

你需要返回布尔值:

list = list.filter(file => { return file !== fileExtension });

list = list.filter(file => file !== fileExtension);