Javascript 有没有更优雅的方法来写这个If/or条件?
我有一个if/or语句,用于检查发送至、抄送和密件抄送字段的消息是否存在两封电子邮件中的一封。我的陈述实际上很好。但我想知道是否有一种更简洁/优雅的写作方式:Javascript 有没有更优雅的方法来写这个If/or条件?,javascript,google-apps-script,gmail,Javascript,Google Apps Script,Gmail,我有一个if/or语句,用于检查发送至、抄送和密件抄送字段的消息是否存在两封电子邮件中的一封。我的陈述实际上很好。但我想知道是否有一种更简洁/优雅的写作方式: var message = GmailApp.getMessageById(id); var to = message.getTo(); var cc = message.getCc(); var bcc = message.getBcc(); if ((to.indexOf("EMAIL1")>-1)||(to.indexOf(
var message = GmailApp.getMessageById(id);
var to = message.getTo();
var cc = message.getCc();
var bcc = message.getBcc();
if ((to.indexOf("EMAIL1")>-1)||(to.indexOf("EMAIL2")>-1)||(cc.indexOf("EMAIL1")>-1)||(cc.indexOf("EMAIL2")>-1)||(bcc.indexOf("EMAIL1")>-1)||(bcc.indexOf("EMAIL2")>-1)){ Logger.log("do some stuff")}
您还可以尝试使用数组,并使用:
这很有效。我不确定这部分是如何工作的:
.some(email=>field.includes(email)
我没有一个名为email的变量。但它似乎仍在工作。知道为什么吗?@DHol阅读并练习我答案中提供的链接。。some
将数组中的每个元素作为新变量传递。
var message = GmailApp.getMessageById(id);
var to = message.getTo();
var cc = message.getCc();
var bcc = message.getBcc();
if (to.indexOf("EMAIL1")>-1||to.indexOf("EMAIL2")>-1||cc.indexOf("EMAIL1")>-1|| cc.indexOf("EMAIL2")>-1||bcc.indexOf("EMAIL1")>-1||bcc.indexOf("EMAIL2")>-1)
{
Logger.log("do some stuff");
}
if (
[to, cc, bcc].some(field =>
['EMAIL1', 'EMAIL2'].some(email => field.includes(email))
)
) {
Logger.log("stuff")
}