[英]TypeError : is not a function in Google Apps Script (MailApp code)
[英]Google Apps Script: TypeError: undefined is not a function
我正在尝试运行此演示Google 表格博客演示。 我按照所有步骤操作,但在运行https://script.google.com/macros/s/[spreadsheetID]/exec?key=abcdef
后出现此错误:
TypeError: undefined is not a function(第 19 行,文件“代码”)
第 19 行 = var headings = rows[0].map(String.toLowerCase);
下面是相关的 function 和完整代码。
function doGet(e) {
if (!isAuthorized(e)) {
return buildErrorResponse('not authorized');
}
var options = {
page: getPageParam(e),
category: getCategoryParam(e)
}
var spreadsheet = SpreadsheetApp.openById(SPREADSHEET_ID);
var worksheet = spreadsheet.getSheets()[0];
var rows = worksheet.getDataRange().sort({column: 2, ascending: false}).getValues();
var headings = rows[0].map(String.toLowerCase);
var posts = rows.slice(1);
var postsWithHeadings = addHeadings(posts, headings);
var postsPublic = removeDrafts(postsWithHeadings);
var postsFiltered = filter(postsPublic, options.category);
var paginated = paginate(postsFiltered, options.page);
return buildSuccessResponse(paginated.posts, paginated.pages);
}
如何解决这个问题?
当我在 GitHub 看到完整的脚本时,发现该脚本已于 2 年前发布。 在这种情况下,没有添加 V8。 为了避免出现TypeError: undefined is not a function (line 19, file "Code")
的错误,下面两种模式怎么样?
在此模式中,脚本在没有 V8 运行时的情况下使用。 在这种情况下,请在脚本编辑器中禁用 V8 运行时。 这样, var headings = rows[0].map(String.toLowerCase);
可以使用没有错误。
在此模式中,脚本与 V8 运行时一起使用。 在这种情况下,请在脚本编辑器中启用 V8 运行时。 另外,请按如下方式修改脚本。
从: var headings = rows[0].map(String.toLowerCase);
至:
var headings = rows[0].map(Function.prototype.call, String.prototype.toLowerCase);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.