TypeError:找不到包含在对象中的函数

时间:2016-09-23 20:58:24

标签: javascript google-apps-script google-sheets

我使用Google Script的经验很少,但我试图用它来搜索电子表格的一列,并查找字符串“Film Dub”的所有实例(知道每个单元格只能有一个)。 / p>

以下是我的代码:

    function filmDub() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var data = sheet.getDataRange().getValues();
      for (var i = 1; i < 100; i++) {
        var s = data[i][2].toString();
        if (s.includes('Film Dub')) {
          data[5][13]++;
        }
      }
    }

但是我一直收到错误

  

TypeError: Cannot find function includes in object Let's Make A Date, Film Dub, Three Headed Broadway Star, Film TV Theater Styles, Greatest Hits, World's Worst. (line 6, file "Code")

让我们制作一个日期,电影配音,三首百老汇明星,电影电视剧风格,最精彩的点击,世界上最糟糕的”是data[i][2]的正确内容所以它是正确的来自电子表格的信息。我在Google脚本编辑器中使用了调试器来验证s是一个字符串(这是Stack Overflow上类似问题的解决方案之一),但这并没有解决我的问题。还有什么可能是错的?

5 个答案:

答案 0 :(得分:7)

您应该使用indexOf和字符串来检查是否存在文本块。

function filmDub() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 1; i < 100; i++) {
    var s = data[i][2].toString();
    if (s.indexOf('Film Dub') !== -1) {
      data[5][13]++;
    }
  }
}

答案 1 :(得分:1)

进一步检查后,仔细检查您的纸张是如何形成的。这就是我构建工作表以使代码正常工作的方式。

         [A]                  [B]                   [C]
[1]Let's Make A Date     Film Dub Three     Headed Broadway Star
         [0]                  [1]                   [2]

这是你的代码:

function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 10; i++) {
var s = data[i][2].toString();
//Logger.log(s);
if (s.indexOf("Film Dub")> -1) {
Logger.log("Horray");
}
}
}

结果如下: enter image description here

希望这有帮助!

答案 2 :(得分:1)

您只需要启用应用脚本的v8引擎。

  1. 在菜单栏中单击“运行”。
  2. 单击“启用运行时应用程序脚本V8引擎”。

然后运行。

启用v8引擎之前,我遇到了同样的错误。

答案 3 :(得分:0)

确保工作表正在运行最新版本的Apps脚本。当您打开脚本编辑器时,您应该在顶部看到一个黄色的提示:“此项目正在由Chrome V8驱动的新的Apps Script运行时上运行。”如果没有,应该有一个启用它的选项。包含功能是Sheets脚本的新增功能。您需要为打算使用它的每个工作表单独启用它。

答案 4 :(得分:-1)

我不是Google Apps脚本专家,但我知道它的javascript,所以为什么不使用以下JS方法:

if(s.indexOf('Film Dub') > -1)