【GAS】V8ランタイムを有効にした時のfor each文の修正方法

(2020/03/10追記しました)

2020年2月、GASがV8エンジンに対応しました。
以前のエンジンでつくられたGASを開くと画面上部にメッセージが出ます。

ここで『有効にする』をクリックすると新しいV8ランタイムを使用できます。

…が、しかし!

これまでGASで使えていたコードが一部使えなくなるので注意が必要です!

そのうちの一つが for each (variable in object) の構文。

for each(var address in addresses){
   ...
}

これまではこんな風に記載していたんですがV8ランタイムを有効にするとエラーになります。

修正の方法

このエラーを修正するには…
開始行を addresses.forEach(function(address) { にする。
終了行を }); にする。

addresses.forEach(function(address) {
   ...
});

こんな感じにするとV8ランタイムを有効にしてもいままでどおり動きました。

for eachの中でcontinueを使用している場合

for eachのループの中で、continueを使用している場合は、V8ランタイムでは『 Error: Line xx: Illegal continue statement 』と表示されてエラーになります。

この場合は、continue; を return; にしてあげることで解決します。

for each以外にも非互換な表現が

他にもいくつか非互換な表現がありますので、気になる方は以下のリンクもご参照ください。

祝!Google Apps Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった
https://tonari-it.com/gas-v8-runtime/

GASがV8エンジンに対応したのでドキュメント読んだ
https://qiita.com/UtaMori/items/ce83672cecca20964899

コメント

タイトルとURLをコピーしました