确定字符串是否包含数组中的子字符串[NODEJS]

时间:2017-08-03 17:52:19

标签: javascript arrays node.js substring

我正在尝试创建一个搜索功能,该功能应该能够在给定各种搜索参数的情况下找到多种文件类型。

例如,我想为我的应用程序提供以下过滤器数组['.ini','。exe','dsak_'],并比较针对该数组找到的每个文件,以确定文件名是否包含其中一个字符串

目前我正在使用以下代码

for(var i = 0; i < filter.length; i++){
  if(file.includes(filter[i])) results.push(file);
}

但是我希望看看有没有更好的方法来实现这个目标?

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找以下代码:

files.filter((file) => 
    // apply filters on files to check if it matches
     filters.some((filter) => file.includes(filter))       
)

答案 1 :(得分:1)

Array.prototype.filter可以帮助您找到与至少一个过滤条件匹配的任何文件,Array.prototype.some将确保您在找到第一个匹配过滤条件后停止:

var matchingFiles = files.filter(file => filters.some(filter => file.includes(filter)));