gpt4 book ai didi

javascript - 无法读取代码中的属性

转载 作者:行者123 更新时间:2023-12-03 03:22:10 25 4
gpt4 key购买 nike

我不断收到此错误:

 TypeError: Cannot read property "6" from undefined. 

我认为我的代码是正确的,但我找不到问题所在。

advocateEmail 函数应该从 findSend 函数获取行数据。但是,当我运行查找发送功能时,它不起作用。

 function findSend() {
var todaysDate = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy");

var ss = SpreadsheetApp.getActiveSpreadsheet();
var tsSheet = ss.getSheetByName("Sheet1");
var tsRows = parseInt(tsSheet.getLastRow());
var tsRange = tsSheet.getRange("A2:F"+tsRows);
var tsData = tsRange.getValues();

for (i = 1; i < (tsRows); i++) {
var row = tsData[i];
var sheetDate = Utilities.formatDate(new Date(row[6]), "GMT", "dd/MM/yyyy");
Logger.log("ROW: "+row);
//Logger.log("LOG:"+String(tsData[i].getValue()));
if( sheetDate == todaysDate) {
advocateEmail(row);
Logger.log(row);
}
}
}

// Send email to advocate



function advocateEmail(row) {

var recipient= row[6]; // Who the email is sent to
var subject= sendTheseName[1] + sendTheseLName[2] + " - Starting today"; // Subject of the message
var message= sendTheseBackup[4] + " - Backup Code"; // Contents of the email
MailApp.sendEmail(recipient, subject, message);
};

如果有人可以帮助了解发生了什么,那就太好了!

示例数据:

Timestamp   First Name  Last Name   Email   Backup code Start Date  Advocate Email  Sender
29/09/2017 Blah Blah Blah@blah.com iewfiw 02/10/2017 Blah@blah.com Anon

最佳答案

命令

var tsRange = tsSheet.getRange("A2:F"+tsRows);

结果是包含 tsRows-1 行的范围,因为您排除了第 1 行。因此,tsData 的行索引为 0,1,...tsRows-2。当你的循环

for (i = 1; i < (tsRows); i++) { 
var row = tsData[i];

以 tsRows-1 的 i 值运行,由于 i 超出索引范围,变量 row 未定义。因此出现了错误。

我认为根本问题是您没有考虑以 0 开头的 JavaScript 索引。row[6] 中也存在同样的问题。由于数组 row 有 6 个元素,分别来自 A、B、C、D、E、F 列,因此它们的编号为 0、1、2、3、4、5。没有行[6]

我还建议根据双数组的实际大小循环,如

for (i = 0; i < tsData.length; i++) {
... do something with tsData[i]
}

关于javascript - 无法读取代码中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46521746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com