标题解释了这个问题。我想通过一个数组过滤并删除所有的子字符串。类似于如何通过匹配整个字符串来移除这样的操作
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()匹配,但不确定如何使用过滤器来实现它。
我怎么能用一条船来做这件事?谢谢
发布于 2020-05-30 11:18:20
所以让我们假设我只想删除所有的发生‘所以每一个不变成不
使用map函数代替filter
const x = ["don't delete", "delete", "delete", "don't delete", "delete", "don't delete"]
const toRemove = "'";
const res = x.map(i => (i.includes(toRemove) ? i.replace(toRemove, '').trim() : i));
console.log(res)
或者我只是想把所有的不都一起移除
使用map函数和filter函数
const x = ["don't delete", "delete", "delete", "don't delete", "delete", "don't delete"]
const toRemove = "'";
const res = x.map(i => i.split(' ').filter(w => !w.includes(toRemove)).join(' '));
console.log(res)
发布于 2020-05-30 11:10:50
您可以使用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);
请注意:常量的值不能通过重新分配而更改,也不能重新声明。
发布于 2020-05-30 11:14:30
如果我理解你的问题,你可以:
const x = ["don't delete", "delete", "delete", "don't delete", "delete", "don't delete"]
.filter(i => i.includes("don't")).map(s => s.replace("'", ""));
console.log(x);
因此,在map()之后使用filter()就可以完成这项工作。
https://stackoverflow.com/questions/62101511
复制相似问题