如何检查字符串是不是包含列表的任何元素并获取元素的值?
Posted
技术标签:
【中文标题】如何检查字符串是不是包含列表的任何元素并获取元素的值?【英文标题】:How to check if a string contains any element of a list & get the value of the element?如何检查字符串是否包含列表的任何元素并获取元素的值? 【发布时间】:2021-10-31 21:51:16 【问题描述】:我想确定列表“网站”中的字符串是否包含在另一个字符串“url”中并从列表中获取字符串的值。
下面的代码可以确定是否可以在 'url' 中找到来自 'websites' 的字符串,但无法从列表中获取触发 .some() 的字符串。
我收到以下错误:“ReferenceError: website is not defined”
在发现 'url' 包含一些 'websites' 的值后,有什么方法可以从 'websites' 中获取字符串的值?
websites = [
'google',
'youtube',
'twitter',
]
var url = window.location.href // e.g. returns www.google.com/soooomethingelse
if (websites.some(website => url.includes(website)))
console.log(website) // here I want to log 'google' from 'websites'
【问题讨论】:
【参考方案1】:我认为只使用.find
方法会容易得多,该方法在满足箭头函数中的条件时返回元素(箭头函数返回true
)。
websites = [
'google',
'youtube',
'twitter',
]
var url = window.location.href // e.g. returns www.google.com/soooomethingelse
var website = websites.find((el) => url.includes(el))
if (website)
console.log(website) // here I want to log 'google' from 'websites'
【讨论】:
是的,这正是我想要的,非常感谢!以上是关于如何检查字符串是不是包含列表的任何元素并获取元素的值?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查字符串是不是包含 List<string> 的任何元素?
在 Presto 中,如何检查我通过子查询获取的列表中是不是存在数组中的元素