【问题标题】:Iterate through files in directory using wildcard inTypescript/ Node.js使用通配符 inTypescript/ Node.js 遍历目录中的文件
【发布时间】:2021-01-27 18:26:40
【问题描述】:

我是一个使用 Typescript/Node 和一般编程的初学者,但我已经浏览了整个 SO 和整个互联网,并没有真正找到与看似常见的任务类似的问题。

所以我有一个来自存储在变量中的目录的文件名数组。我基本上需要搜索数组并根据通配符查找文件名。

我需要遍历数组并找到与“消息”匹配的任何内容并将文件名打印出来。我尝试了类似以下的方法,但它没有给我我需要的东西。

let files: any = [ 'message-out-bar.log','agent-all.log','messages-out-tabular238.log' ]

for (let i in files) {
    if (files[i].indexOf('messages') > -1) {
        console.log(i);
    }
}

另外,我想避免使用 RegX 或 glob 之类的东西。

【问题讨论】:

  • 要打印文件名,只需使用console.log(files[i]);;否则,您的方法似乎没问题。 (但是,请考虑改用 for-of-loop)。

标签: javascript node.js arrays typescript wildcard


【解决方案1】:

您的方法是正确的,但是您需要显示的不是作为数组索引的 i,而是作为数组项的 files[i]

此外,还有另一种方法可以使用fitler()includes() 方法获得想要的结果:

let files = [ 'message-out-bar.log','agent-all.log','messages-out-tabular238.log' ]
const target = 'messages';
const similars = files.filter(f => f.includes(target));
console.log(similars);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2013-09-21
    • 2010-12-16
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多