回答編集履歴

1

修正

2019/02/22 07:28

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -1,21 +1,43 @@
1
+ ※全面書きかえしました。t_obara様のご指摘に感謝します
2
+
3
+
4
+
5
+ 原因は、draftsをループしているカウンタ変数`i`および上限変数`l`と
6
+
7
+ 別名(alias)をループしているカウンタ変数`i`および上限変数`l`が同じであることではないでしょうか。
8
+
9
+
10
+
11
+ 下記概念コードで示しますが、hereのところにあるlは最初のループから「1」が出力され、ループは1回で終端します。
12
+
1
13
  ```javascript
2
14
 
15
+ function q175842() {
16
+
3
- var mes = drafts[i];
17
+ var limit = 5;
18
+
19
+ for(var i = 0, l = limit; i < l; i++) {
20
+
21
+ var alius = 1;
22
+
23
+ for(var i = 0, l = alius; i < l; i++) {
24
+
25
+ Logger.log("inner");
26
+
27
+ }
28
+
29
+ Logger.log(l); //here
30
+
31
+ Logger.log("outer");
32
+
33
+ }
34
+
35
+ }
4
36
 
5
37
  ```
6
38
 
7
- で取得した`mes`はGmailDraftのはずで、こいつを最後
8
-
9
- ```javascript
10
-
11
- mes.moveToTrash();
12
-
13
- ```
14
-
15
- としてますが、moveToTrash()は[GmailThreadのメソッド](https://developers.google.com/apps-script/reference/gmail/gmail-thread)ではあっても[GmailDraft](https://developers.google.com/apps-script/reference/gmail/gmail-draft)にはないので、エラーで処理が中断しているように思いました。
16
-
17
- 多分[`deleteDraft()`](https://developers.google.com/apps-script/reference/gmail/gmail-draft#deleteDraft())を使うべき。
18
39
 
19
40
 
41
+ 従って提示コードが上手く動くのは、下書きとaliasが上手く強調している場合のみで
20
42
 
21
- ※ただだとした、質問者様スクリプトエラー通知くるはずなので解せないです
43
+ 例えば下書きが3通あるときは上かaliasの指定3件2件、1件とってる特殊状況です。