javascript - 在 includes() 中使用 "OR"运算符来试验字符串中是否存在任何

我在尝试像这样在 includes() 函数中使用 OR 运算符时注意到

x.includes("dogs"||"cats"||"birds"||"fish"||"frogs")

它只会尝试包含的第一个字符串,不会再尝试。我怀疑我在这里遗漏了一些明显的东西,或者 includes() 不是用于这种情况的正确函数。

目标是试验多个字符串以确定它们是否是 x 的子字符串。因为我正在尝试使用 or 运算符,所以我的意图是不接收每个试验字符串的 bool 值数组,而是如果有任何一个为真,则单个 bool 值为真,否则需要假。

最佳答案

|| 运算符不是分布式的。函数参数被简单地评估为表达式,因此您的调用等效于:

var temp = "dogs"||"cats"||"birds"||"fish"||"frogs";
x.includes(temp)

一系列 || 操作的值是该系列中的第一个真值。由于所有非空字符串都是真实的,这等同于:

var temp = "dogs";
x.includes(temp)

您需要对每个字符串调用 includes 的结果使用 ||:

x.includes("dogs") || x.includes("cats") || x.includes("birds") ...

你可以使用数组的 some() 方法来简化这个:

["dogs","cats","birds","fish","frogs"].some(species => x.includes(species))

关于javascript - 在 includes() 中使用 "OR"运算符来试验字符串中是否存在任何子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61832671/

相关文章:

swift - 在 Vapor 中使用原始 sql 返回条目总数

python - 将 Selenium 与 PyCharm CE 一起使用时的弃用问题

c - 使用 for 循环初始化一个数组,并将最终数组元素的值作为条件(在 C 中)

google-app-engine - gcloud app deploy - 更新服务默认值失败,

django - 将 Django 连接到 Microsoft SQL 数据库

ios - SecurityApplicationGroupIdentifier 的应用组返回 ni

javascript - 如何使用 nestfastify 编写来自 nestjs 异常过滤器的响应

php - 如何解决 "The process has been signaled with sig

swiftui - 我怎样才能在 SwiftUI 中实现类似于 radiogroup 的一种可能选择

scala - 通过方法类型参数分配给类型成员的值打破了类型等价