过滤不包括其他数组中的字符串的字符串?

伊万镇

我想通过排除包含黑名单数组中任何子字符串的URL来过滤URL数组。

const urls = [
'http://example.com/people/chuck', 
'http://example.com/goats/sam', 
'http://example.com/goats/billy', 
'http://example.com/goats/linda', 
'http://example.com/cows/mary', 
'http://example.com/cows/betty', 
'http://example.com/people/betty']

const blacklist = ['cows', 'goats']

let cleanUrls = [];

我可以使用for循环来做到这一点,但我想使用filter和/或reduce来找到一种简洁的方法。

如果我不需要遍历x个黑名单项目:

cleanUrls = urls.filter( url => !url.includes(blacklist[0]) )                  
                .filter( url => !url.includes(blacklist[1]) ) 

我也不想只使用forEach或map遍历黑名单,因为如果特定的网址与任何黑名单条目匹配,我想立即停止。

请使用普通的JS。谢谢。:)

穆罕默德·乌斯曼(Mohammad Usman)

您可以这样使用filter()

const cleanUrls = urls.filter(u => blacklist.every(s => !u.includes(s)));

要么

const cleanUrls = urls.filter(u => !blacklist.some(s => u.includes(s)));

描述:

  • .includes() 将检查子字符串是否与另一个字符串一起存在。
  • .every()将检查blacklist特定URL中是否不存在数组的字符串
  • .some()将检查blacklist特定URL中是否存在任何字符串数组。
  • .filter() 将仅选择将通过测试的那些URL。

演示:

const urls = [
  'http://example.com/people/chuck', 
  'http://example.com/goats/sam', 
  'http://example.com/goats/billy', 
  'http://example.com/goats/linda', 
  'http://example.com/cows/mary', 
  'http://example.com/cows/betty', 
  'http://example.com/people/betty'
];

const blacklist = ['cows', 'goats'];

const cleanUrls = urls.filter(u => blacklist.every(s => !u.includes(s)));

console.log(cleanUrls);

文件:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取括号之间的字符串,不包括其他括号

数组中的字符串未添加其他字符

MySQL中的聚合表,不包括字符串

PHP中的字符串不包括$ variable

浏览哈希数组以删除Ruby中其他字符串中包含的字符串

对数组中的CSV字符串排序(不包括零索引)

在PHP中过滤字符串数组

如何检查数组中的任何字符串是否包含其他数组中的任何其他字符串(子字符串)?(PostgreSQL)

过滤字符串数组,包括“ like”条件

遍历字符串,但将分隔符保留在子字符串中,包括其他规则

过滤字符串数组

列出字符串,这些字符串是列表中其他字符串的子字符串

从JavaScript数组中删除所有伪造的值,包括NaN但不包括0和空字符串

RavenDb 4:检查字符串数组中的字符串是否存在于其他字符串数组中

计算R中字符串中的字符(不包括空格)?

如何在字符串中替换单个斜杠“ /”(不包括“://”模式中的斜杠字符)

从其他字符串数组存储字符串数组

用其他字符串数组替换字符串数组?

从字符串中删除空格字符集(不包括空格)

不包括字符串的 SQL 之类的语句

grep-不包括前期字符串

javascript截断字符串,不包括标点或空格

regex:获取值href =“”(不包括字符串)

查找字符串的长度(不包括空格)?

匹配不包括文字星号的字符串

查找字符串中存在的其他字符

将字符串的映射,列表加入一个不包括字符串的列表中

根据字符串创建两个列表,括号中的字符串不包括在内

在perl中的START和END字符串之间替换文本(不包括END字符串)