一个衬里使用过滤器删除数组中所有出现的子串吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个衬里使用过滤器删除数组中所有出现的子串吗?相关的知识,希望对你有一定的参考价值。

标题几乎解释了这个问题。我想过滤一个数组并删除所有出现的子字符串。类似如何通过匹配整个字符串以将其删除来完成]

const x = ["don't delete", "delete", "delete", "don't delete", "delete", "don't delete"]
x= x.filter(i => i !== 'delete me');

> console.log(x)
["don't delete", "don't delete", "don't delete"]

因此,我们只想删除所有出现的',以便每个don't都变成dont,或者也许我只想删除所有的don't。我知道您可以用includes()匹配子字符串,但不确定如何用过滤器实现它。

我该如何在一个班轮里进行这项工作?谢谢

答案

您可以使用includes()尝试以下方式:

const x = ["don't delete", "delete", "delete", "don't delete", "delete", "don't delete"]
var y = x.filter(i => i.includes("don't"));

console.log(y);
另一答案

如果我理解您的问题,您可以执行:

x.filter(i => i.includes("don't")).map(s => s.replace('\'', ''));

因此在map()之后使用filter()将完成工作。

以上是关于一个衬里使用过滤器删除数组中所有出现的子串吗?的主要内容,如果未能解决你的问题,请参考以下文章

7-53 删除字符串中的子串 (20分)

[PTA]7-29 删除字符串中的子串

UVA-11107 Life Forms(求出现K次的子串,后缀数组+二分答案)

求一个字符串中连续出现次数最多的子串

poj 3261 后缀数组 找反复出现k次的子串(子串能够重叠)

字符串中连续出现最多的子串 & 字符串中最长反复子串