保存以后要使用的某些值的for循环索引

时间:2016-05-14 03:14:07

标签: arrays google-apps-script

我试图创建两个电子表格:一个跟踪学生在学校的出勤情况,另一个跟踪他们参加Track练习。目标是编写一个功能,我可以将其设置为按钮,我可以单击该功能,如果学生在学校但是没有理由缺席体育运动,则会自动向几个人发送电子邮件。

现在,整个过程非常顺利,但我有一个问题。我有一个专栏将会读到" Good"或者"坏"取决于学生是否符合上述条件。该函数将这些转换为数组。我想使用" Bad"的索引来查找必要的电子邮件地址,这些地址存储在我从电子表格制作的另一个数组中的相同索引点处。我不确定如何保存此索引点并使用它来引用电子邮件地址。代码如下。

function sendEmailsMonday() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TrackAttendance");
  var dataRange = sheet.getRange("D2:D30");
  var data = dataRange.getValues();// Gets array of "Good" and "Bad"
  for (i in data) {
    if(i = "Bad") {
      var place = data.indexOf(i);
      var dataRange2 = sheet.getRange("M2:M30");// Gets array of email addresses
      var data2 = dataRange2.getValues();
      var emailAddress = data2[place];
      var message = "This is an automated email informing you that your child/advisee ____ was present at school today, but missed Track without being excused. Feel free to email Mr. @ with any questions.";
      var subject = "___ missed Track Practice";
      MailApp.sendEmail(emailAddress, subject, message);
      return;
    }
  }
}

因此,问题在于索引线。如果我摆脱

var place = data.indexOf(i);

并替换

var emailAddress = data[place];

var emailAddress = data[28];

或任何其他号码,它将获取电子邮件地址并发送。但是它与另一列中的值无关。

似乎这应该是一个简单的解决办法,但我对此不好。

1 个答案:

答案 0 :(得分:0)

现在很晚才回应。我想你差不多了。

您的IF语句应为:

if(i == "Bad") {  

然后替换' place'与我:

var emailAddress = data2[i];

它应该按预期工作。