前提・実現したいこと
現在GASで、その日の作業をメールで通知するようなシステムを作成しています。
特定の範囲にあるデータをメールで以下のように通知させたいのですが、
配列の空データがあると、【作業1】と【作業2】の末尾が変にスペースが開いてしまい、
イメージするようなメール表記にすることができません。
◆メールイメージ
--------------------------------
本日の作業をお知らせします。
【作業1】
①追加1
②追加2
③追加3
【作業2】
①削除1
②削除2
--------------------------------
スプレッドシート上では以下のような構造で、
内容や個数が日時で増減するような仕様です。
作業1 | 作業2 |
---|---|
追加1 | 削除1 |
追加2 | 削除2 |
追加3 |
発生している問題・エラーメッセージ
【作業1】~追加3だけ入った配列が必要なのですが、追加3以降にある空白セルの文も格納されています。
※該当ソースコードのbodyAdd出力結果↓
[【作業1】 , 追加1 , 追加2 , 追加3 , , , , undefined ]
該当のソースコード
GAS
1const sheet = ss.getSheetByName('作業一覧'); 2var tableAdd = sheet.getRange(5,20,36).getValues(); //作業1のデータ取得 3 4var bodyAdd = []; 5 6 //作業1で必要な情報を1件ずつ取得 7 for(var i = 0; i <= tableAdd.length; i++){ 8 bodyAdd[i] = tableAdd[i] + '\n'; //この時点までに空の配列を削除しておきたい 9 } 10 11
試したこと
ネット上であったfilterを使用する方法や、
If関数でnullじゃないものだけfor文でまわす方法などを参考に試しましたが、
空の配列を削除することができませんでした。
補足情報(FW/ツールのバージョンなど)
参考サイト:
https://gray-code.com/javascript/remove-empty-element-for-array/
https://www.nyamucoro.com/entry/2018/05/03/182609
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/19 00:18