web-dev-qa-db-ja.com

TypeError:オブジェクトに関数インクルードが見つかりません

Googleスクリプトの使用経験はほとんどありませんが、それを使用してスプレッドシートの1つの列を検索し、「Film Dub」という文字列のすべてのインスタンスを見つけようとしました(セルごとに1つしか存在できないことを知っていました)。

以下は私のコードです:

_    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")

"Let's Make A Date、Film Dub、Three Headed Broadway Star、Film TV Theater Styles、Greatest Hits、World's Worst"は_data[i][2]_の正しい内容なので、スプレッドシート。私はGoogle Script Editorのデバッガーを使用してsが文字列であることを確認しました(これはStack Overflowでの同様の質問に対する解決策の1つでした)が、問題は解決しませんでした。他に何が悪いのでしょうか?

8
bookworm144

文字列で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]++;
    }
  }
}
10
Amit Agarwal

さらに確認したら、シートがどのように形成されているかを再確認してください。これは、コードを機能させるためにシートを作成した方法です。

         [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

お役に立てれば!

1
Mr.Rebot

シートで最新バージョンのApps Scriptが実行されていることを確認してください。スクリプトエディターを開くと、上部に「このプロジェクトは、Chrome V8を搭載した新しいApps Scriptランタイムで実行されています。」という黄色の通知が表示されます。そうでない場合は、有効にするオプションです。includes関数はSheetsスクリプトの新機能です。使用するすべてのSheetに対して個別に有効にする必要があります。

0
G.C.