我们给了一个字符串数组和另一个我们需要在数组中搜索的字符串。我们可以过滤数组,检查它是否包含用户通过输入提供的所有字符。
这样做的代码将是-
解决方案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"]