javascript - 如何使用 JavaScript 方法创建 "OR"条件?

标签 javascript arrays conditional-statements

我正在学习函数式编程并试图避免使用语句。

我有一个很长的条件语句,如下所示:

if (!event.body || 
  !event.body.Id || 
  !event.body.source.accountId || 
  !event.body.sourceId || !event.body.targetId || 
  !event.body.targetName) 
{ return 0; }

我正在考虑做这样的事情:

let invalid = [event.body, event.body.Id, event.body.source.accountId, event.body.sourceId, event.body.targetId, event.body.targetName]

if(invalid.includes("")){return 0;}

但我不确定使用 ""!,它们是否相同?我知道 ! 表示 nullundefined,但不确定 "" 空字符串在这里可以吗?

我能想到的另一种方法是:

let invalid = [event.body, event.body.Id, event.body.source.accountId, event.body.sourceId, event.body.targetId, event.body.targetName]

if(invalid.every(x=>{if(x){return x}})){return 0;}

我不确定哪种方法更好?

最佳答案

includes("") 不会检测 nullundefinedfalse0 NaN,只是""。因此,在这里使用 every 更好:

if(!invalid.every(x => x))

或与some相同:

if(invalid.some(x => !x))

关于javascript - 如何使用 JavaScript 方法创建 "OR"条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51307310/

相关文章:

javascript - 无法为绝对定位图像的宽度设置动画

javascript - Socket.IO:断开连接时的 XHR 轮询延迟

javascript - 迭代 JS 数组 + 数组属性

python - 基于 1 个条件的新列使用索引和一列 groupby

css - 如何让条件 css 在 Blogger/Blogspot 上工作?

javascript - res.writehead 和 res.write 的 hapi 等价物是什么?

javascript - 有没有一种方法可以在不使用 obj.key 或 obj ['key' 的情况下访问 JavaScript 对象值?

java - 使用 testNG 将 test 内的数据提供者元素作为数组进行利用

java - Android 内存不足异常存储大量字节

python - 根据 Pandas 上的列值应用 lambda