社区首页 >问答首页 >如何使过滤函数和for每个循环不重复数据?

如何使过滤函数和for每个循环不重复数据?
EN

Stack Overflow用户
提问于 2020-05-21 05:21:35
回答 1查看 56关注 0票数 0

因此,我有一个电子表格,我在其中获取患者信息,并将行数据发送给临床医生,如果他们还没有看过患者。因此,通过下面的代码,我能够完成向临床医生发送电子邮件的任务,以提醒他们去看望他们的病人。但这里有个问题。这是我不明白的地方。

假设我有以下数据:

当我收到电子邮件时,发送给所有这些患者的1名临床医生。电子邮件未按顺序发送到收件箱。例如,我会先收到Roland的电子邮件,然后是John,然后是Jessica。但约翰是第一个记录。有时,我会收到同一病人的多封电子邮件。但对于复制部分,我认为这是因为我有一个过滤器和一个for each循环,在本例中我需要这两个循环。因为如果J列中没有数据,这段代码就会过滤行。但是,如果满足这个条件,我需要一种方法来提取行的其余数据。但现在我在电子邮件中收到无序的或多个相同的记录。

你能看看我的过滤器,看看有没有什么办法可以解决这个问题?在这个问题上我真的迷失了方向。

谢谢。

代码语言:javascript
代码运行次数:0
复制
 function selectRecords() {
      const ss = SpreadsheetApp.getActiveSheet();
      const dataRange = ss.getDataRange();
      const headers = 2;
      const dataValues = dataRange
        .offset(headers, 0, dataRange.getNumRows() - headers)//offsetting the headers from the whole range
        .getValues();

      dataValues
        .filter(row => row[9] == '') //filtered data where row[9] is empty
        .forEach(row => {
          //forEach filtered row do>
          let message =
            row[0] +
            '\n' +
            row[1] +
            '\n' +
            row[2] +
            '\n' +
            row[3] +
            '\n' +
            row[4] +
            '\n' +
            row[5]; 
          let email = row[13];
          let subject = 'Sending emails from a Spreadsheet';
          MailApp.sendEmail(email, subject, message);
          Logger.log(`${subject}: ${message} sent to ${email}`);
        });
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-21 23:04:20

代码语言:javascript
代码运行次数:0
复制
function selectRecords() {
  const ss = SpreadsheetApp.getActiveSheet();
  const dataRange = ss.getDataRange();
  const headers = 2;
  const dataValues=ss.getRange(3,1,ss.getLastRow()-2,ss.getLastColumn()).getValues();
  dataValues.forEach(function(row){
    if(row[9]=='') {
      let message =row[0] + '\n' + row[1] + '\n' + row[2] + '\n' + row[3] + '\n' + row[4] + '\n' + row[5]; 
      let email = row[13];
      let subject = 'Sending emails from a Spreadsheet';
      MailApp.sendEmail(email, subject, message);
      Logger.log(`${subject}: ${message} sent to ${email}`);
    }
  });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61927797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文