teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

2021/06/23 03:47

投稿

退会済みユーザー
answer CHANGED
@@ -64,7 +64,7 @@
64
64
  x = values.join();
65
65
  ```
66
66
  →「join()」とする必要があります。
67
- 元のまだとこ時点xはグローバル変数になってしまっていので直近でvar x = '';というように定義しておいた方がよいと思います。
67
+ た、各々if~else内var xとすよりはそれ以前1回でまとめて var x = '';というように定義しておいた方がよいと思います。
68
68
   
69
69
  ```
70
70
  if(yasumi === '***' && day == '1'){

5

2021/06/23 03:47

投稿

退会済みユーザー
answer CHANGED
@@ -85,13 +85,13 @@
85
85
  [仕様]
86
86
  1. Googleカレンダーに登録されている関数実行当日のイベントのタイトルをLINE通知する。
87
87
  2. 通知対象イベント:必要条件=終日イベント(時間指定イベントは通知対象外とする)。かつ、通知の判断にあたっては、下記3,4,5の内容を考慮すること。
88
- 3. 関数実行日が月曜日、水曜日、木曜日である場合のみ通知する。それ以外の場合は4に該当するか否かかわらず通知しない。
88
+ 3. 関数実行日が月曜日、水曜日、木曜日である場合のみ通知する。それ以外の場合は4に該当するか否かかわらず通知しない。
89
- 4. 通知対象イベントに指定した文字(「※」)が含まれている場合は、曜日に応じて、下記のメッセージをイベントタイトルに付加して通知する。
89
+ 4. 通知対象イベントのタイトルに指定した文字(「※」)が含まれている場合は、曜日に応じて、下記のメッセージをタイトルに付加して通知する。
90
90
   月曜日:「[ゴミの日です]」
91
91
   水曜日:「[資源ゴミの日です]」
92
92
   木曜日:「[ゴミの日です]」
93
- 5. 3に該当する曜日であっても、通知対象イベントに指定した文字が含まれていない場合は、通知しない。
93
+ 5. 3に該当する曜日であっても、通知対象イベントのタイトルに指定した文字(「※」)が含まれていない場合は、通知しない。
94
- 6. カレンダー上、同じ日に2つ以上イベントが登録されている場合は、1つのイベントごとに通知対象イベントであるかどうか判断した上で通知を発行する。
94
+ 6. カレンダー上、同じ日に2つ以上イベントが登録されている場合は、1つのイベントごとに通知対象イベントであるかどうか判断した上で1つずつ通知を発行する。
95
95
 
96
96
  ```
97
97
  function notifyGarbageCollection() {
@@ -120,7 +120,7 @@
120
120
 
121
121
  const title = event.getTitle();
122
122
  // 通知メッセージ
123
- let msg = title + " ";
123
+ let msg = title + ' ';
124
124
 
125
125
  // 取得したイベントが終日イベントでない場合はスキップ。
126
126
  if(event.isAllDayEvent() === false) return;

4

2021/06/23 03:32

投稿

退会済みユーザー
answer CHANGED
@@ -72,7 +72,7 @@
72
72
  if(yasumi.indexOf('***') !== -1 && day == 1){
73
73
  ```
74
74
  - xはmatch関数の結果を受け取っているので配列となっています。yasumiは配列xをjoin()で連結しているので、カンマで区切られた文字列になっています。
75
- したがって、yasumiという文字列の中に「***」が**含まれているかどうか**は比較演算子===では正確には判定できません。 代わりに、indexOfで判定するやり方があります。
75
+ したがって、yasumiという文字列の中に「`***`」が**含まれているかどうか**は比較演算子===では正確には判定できません。 代わりに、indexOfで判定するやり方があります。
76
76
  ※(「***」のところは実際に使用する文字に変えてください。アスタリスクが含まれる文字では正確に動きません)
77
77
 
78
78
  - getDay()関数は数字(Number型)を返すので 比較先は文字列('1')ではなく、数字(1)にする必要があります。

3

修正

2021/06/23 03:25

投稿

退会済みユーザー
answer CHANGED
@@ -84,9 +84,8 @@
84
84
  (質問者さんの希望動作と異なるかもしれませんがあくまで「例」なのでご了承ください)
85
85
  [仕様]
86
86
  1. Googleカレンダーに登録されている関数実行当日のイベントのタイトルをLINE通知する。
87
- 2. 通知対象イベント:終日イベントのみ(時間指定イベントは通知対象外とする)、
87
+ 2. 通知対象イベント:必要条件=終日イベント(時間指定イベントは通知対象外とする)。かつ通知の判断にあたっては、下記3,4,5の内容を考慮すること。
88
88
  3. 関数実行日が月曜日、水曜日、木曜日である場合のみ通知する。それ以外の場合は4に該当するか否かかわらず通知しない。
89
-
90
89
  4. 通知対象イベントに指定した文字(「※」)が含まれている場合は、曜日に応じて、下記のメッセージをイベントタイトルに付加して通知する。
91
90
   月曜日:「[ゴミの日です]」
92
91
   水曜日:「[資源ゴミの日です]」

2

修正

2021/06/23 03:24

投稿

退会済みユーザー
answer CHANGED
@@ -91,7 +91,7 @@
91
91
   月曜日:「[ゴミの日です]」
92
92
   水曜日:「[資源ゴミの日です]」
93
93
   木曜日:「[ゴミの日です]」
94
- 5. 3に該当する曜日であって、通知対象イベントに指定した文字が含まれていない場合は、4の文字列付加処理は行わず、イベントのタイトルのみ通知する
94
+ 5. 3に該当する曜日であって、通知対象イベントに指定した文字が含まれていない場合は、通知しない
95
95
  6. カレンダー上、同じ日に2つ以上イベントが登録されている場合は、1つのイベントごとに通知対象イベントであるかどうか判断した上で通知を発行する。
96
96
 
97
97
  ```

1

2021/06/23 03:22

投稿

退会済みユーザー
answer CHANGED
@@ -61,11 +61,10 @@
61
61
  ```
62
62
  x = values.join;
63
63
 
64
- var x = values.join();
64
+ x = values.join();
65
65
  ```
66
66
  →「join()」とする必要があります。
67
-
67
+ 元のままだとこの時点ではxはグローバル変数になってしまっているので、直近でvar x = '';というように定義しておいた方がよいと思います。
68
-
69
68
   
70
69
  ```
71
70
  if(yasumi === '***' && day == '1'){