You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script中Array的includes方法失效问题咨询

为什么Google Apps Script里数组的includes方法失效?

这个问题我之前踩过坑!其实根源出在Google Apps Script的运行时引擎上,咱们一步步拆解:

问题原因

你当前的脚本大概率在使用旧版的Rhino引擎(Mozilla开发的JavaScript引擎),它仅支持到ES5标准。而Array.prototype.includes是ES6(ES2015)才新增的数组方法,Rhino根本不认识这个函数——哪怕Array.isArray(array1)能正确返回true(因为数组类型判断是ES5支持的),也没法调用它没有实现的方法,这就是你看到报错的原因。

而indexOf是ES3就存在的老方法,Rhino完全兼容,所以能正常工作。

解决办法

方法1:切换到V8运行时(推荐)

Google Apps Script现在支持Chrome V8引擎,它完全兼容ES6及之后的语法,启用后就能直接用includes了:

  • 打开你的脚本编辑器
  • 点击右上角的⚙️设置图标
  • 在设置页面勾选启用Chrome V8运行时
  • 保存设置,回到编辑器重新运行脚本

启用后,你的测试代码里array1.includes("A")会正常返回false,完全符合预期。

方法2:手动添加polyfill(兼容旧引擎)

如果因为某些原因没法切换到V8(比如旧脚本有兼容性问题),可以自己给数组对象补全includes方法,把这段代码放在脚本最顶部:

if (!Array.prototype.includes) {
  Array.prototype.includes = function(searchElement) {
    return this.indexOf(searchElement) !== -1;
  };
}

这样Rhino引擎就能识别includes方法了,功能和原生实现一致。

内容的提问来源于stack exchange,提问作者Ricardo Coto Oviedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:05:52