谷歌应用脚本。类型错误:未定义不是一个函数

我想让这个演示 谷歌表格博客演示 来运行。我按照所有的步骤进行了操作,但在运行了 https://script.google.com/macros/s/[spreadsheetID]/exec?key=abcdef:

TypeError: undefined is not a function (line 19, file “Code”)

第19行= var headings = rows[0].map(String.toLowerCase);下面是相关功能,这里是 全码.

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"),以下2种模式如何?

模式1:

在这种情况下,脚本的使用没有V8运行时。在这种情况下,请在脚本编辑器中禁用V8运行时。通过这种方式。var headings = rows[0].map(String.toLowerCase); 可以在没有错误的情况下使用。

模式2.在这个模式中,脚本是在V8运行时使用的。

在这种情况下,脚本是在V8运行时使用的。在这种情况下,请在脚本编辑器中启用V8运行时。同时,请修改脚本如下。

发件人

var headings = rows[0].map(String.toLowerCase);

收件人:

var headings = rows[0].map(Function.prototype.call, String.prototype.toLowerCase);

参考:

给TA打赏
共{{data.count}}人
人已打赏
未分类

NSIS设置桌面图标、开始菜单图标和AbortRetryIgnore Error。

2022-9-9 1:50:20

未分类

在WPF中运行Livecharts时,CartesianChart的垂直轴出现问题。

2022-9-9 1:50:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索