Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有更优雅的方法来写这个If/or条件?_Javascript_Google Apps Script_Gmail - Fatal编程技术网

Javascript 有没有更优雅的方法来写这个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(

我有一个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("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")
}