javascript - 返回包含特定值的数组中的整个项目

标签 javascript arrays regex string variables

我正在尝试获取数组中包含特定值的项目。

假设我有一个数组

var arr = ["boat.gif", "goat.png", "moat.jpg"];

我有一个变量var imageName = "boat"

由于我不知道 imageName 的文件扩展名,因此我需要一种方法来通过我的数组运行它并获取 "boat.gif" 作为输出。

我用正则表达式尝试过

let filesString = arr.join(" ");

let regExName = new RegExp(imageName, "i");

let fileName = regExName.exec(files­String),

file = fileName.input.subst­r(fileName.index, 5);

它有效,但我希望有更好的方法

我希望这是有道理的

最佳答案

通过 .includes.startsWith 进行过滤可能更容易:

var arr = ["boat.gif", "goat.png", "moat.jpg"];
var imageName = "boat";

const found = arr.find(str => str.includes(imageName));
console.log(found);

var arr = ["boat.gif", "goat.png", "moat.jpg"];
var imageName = "boat";

const found = arr.find(str => str.startsWith(imageName));
console.log(found);

如果目录中可能存在以相同单词开头的其他文件(例如 boats.gif),则像您正在做的那样构造一个正则表达式,但向前查找 .:

var arr = ["boat.gif", "goat.png", "moat.jpg"];
var imageName = "boat";

const pattern = new RegExp(imageName + '(?=\.)');

const found = arr.find(str => pattern.test(str));
console.log(found);

关于javascript - 返回包含特定值的数组中的整个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59595962/

相关文章:

python - 正则表达式代码或控制台执行的速度差异

javascript - 如何从左到右和从右到左为背景图像设置动画

javascript - 如何从命令行使用 mathjax?

javascript - 如果一个 child 有一个活跃的类(class),那么也给 parent 一个活跃的类(class) - Vanilla JS

ruby-on-rails - 在 Rails 关系上使用 Ruby 的 select 方法并更新它

iphone - 排序/过滤 NSArray/NSMutableArray

Javascript:如何访问名称为动态的属性?

Javascript Highcharts : series datalabel formatter function to loop data not formatting all data form the array

javascript - 拆分为 RegEx 组

javascript - 我不明白用于拆分多行的模式