如何使用字符串搜索数组,该字符串会被JavaScript拆分为数组?

我们给了一个字符串数组和另一个我们需要在数组中搜索的字符串。我们可以过滤数组,检查它是否包含用户通过输入提供的所有字符。

这样做的代码将是-

示例

解决方案1

const deliveries = ["14/02/2020, 11:47,G12, Kalkaji", "13/02/2020, 11:48,
A59, Amar Colony"];
const input = "g12, kal";
const pn = input.split(" ");
const requiredDeliveries = deliveries.filter(delivery =>
pn.every(p =>
delivery.toLowerCase()
.includes(p.toLowerCase())));
console.log(requiredDeliveries);

输出结果

控制台中的输出-

["14/02/2020, 11:47,G12, Kalkaji"]

在另一种更好的方法中,我们可以删除拆分输入的步骤,如下所示:

示例

解决方案2

const deliveries = ["14/02/2020, 11:47,G12, Kalkaji", "13/02/2020, 11:48,
A59, Amar Colony"];
const input = "g12, kal";
const requiredDeliveries = deliveries
.filter(delivery =>
delivery.toLowerCase()
.includes(input.toLowerCase()));
console.log(requiredDeliveries);

但是,在使用第二种方法时,我们必须记住,它是序列敏感的,意味着AB将与ab或Ab匹配,而不与BA或ba匹配。

控制台中的输出-

输出结果

["14/02/2020, 11:47,G12, Kalkaji"]