我正在学习函数式编程并试图避免使用语句。
我有一个很长的条件语句,如下所示:
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;}
但我不确定使用 ""
和 !
,它们是否相同?我知道 !
表示 null
或 undefined
,但不确定 ""
空字符串在这里可以吗?
我能想到的另一种方法是:
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("")
不会检测 null
、undefined
、false
、0
和 NaN
,只是""
。因此,在这里使用 every
更好:
if(!invalid.every(x => x))
或与some
相同:
if(invalid.some(x => !x))
关于javascript - 如何使用 JavaScript 方法创建 "OR"条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51307310/