Есть ли более элегантный способ написать это условие If? - PullRequest
0 голосов
/ 07 марта 2020

У меня есть оператор if / или, который проверяет поля сообщений To, Cc и B cc на наличие одного из двух электронных писем. Утверждение у меня на самом деле работает отлично. Но мне интересно, есть ли более компактный / элегантный способ написать это:

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")}

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Использование Array.some и String.includes :

if (
  [to, cc, bcc].some(field =>
    ['EMAIL1', 'EMAIL2'].some(email => field.includes(email))
  )
) {
Logger.log("stuff")
}
0 голосов
/ 07 марта 2020
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");
}

Вы также можете попробовать использовать массивы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...