有没有更优雅的方式来写这个 If/or 条件?
Is there a more elegant way to write this If/or condition?
我有一个 if/or 语句来检查收件人、抄送和密件抄送字段是否存在两封电子邮件之一。我的声明实际上工作正常。但是不知道有没有更compact/elegant的写法:
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")}
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");
}
您也可以尝试使用数组
使用Array.some and String.includes:
if (
[to, cc, bcc].some(field =>
['EMAIL1', 'EMAIL2'].some(email => field.includes(email))
)
) {
Logger.log("stuff")
}
我有一个 if/or 语句来检查收件人、抄送和密件抄送字段是否存在两封电子邮件之一。我的声明实际上工作正常。但是不知道有没有更compact/elegant的写法:
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")}
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");
}
您也可以尝试使用数组
使用Array.some and String.includes:
if (
[to, cc, bcc].some(field =>
['EMAIL1', 'EMAIL2'].some(email => field.includes(email))
)
) {
Logger.log("stuff")
}