質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1281閲覧

スプレッドシート:配列をメール本文に出力する際、カンマを取り除きたい

kusunoki

総合スコア17

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/05/17 10:11

編集2017/05/17 10:48

###「,」を抜いて全体を文字列にし、改行や文字列をを追加する

配列Yにエラー, エラー, A, Bという文字列が入っています。
配列Y一覧を繋がったテキストとしてまとめて出力したいとき、カンマを抜く方法はありますか?

改行もおこなえればと思っています。
var countY=Y.length;
for(var i=1;i<=countY;i++){
Y[i-1] = Y[i-1]+"\n";
}
GmailApp.sendEmail("~~~@~~~.com","テスト",Y);

###試した結果
join()やreplace()でカンマを抜こうとすると改行ではなくerror/nerror/nA/nBという文字列になってしまいます。
そこでY[i-1]+"/n"で改行しましたがカンマが残ってしまいます。

エラー
,エラー
,A
,B

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

多重でない、ひとつの配列に対してであれば、たとえば以下のように書くことができるとおもいます

javascript

1var string = 'エラー, エラー, A, B'; 2var array = [string, string, string]; 3 4// 配列の内容を引き継ぎつつ、変換処理を加えて、結果として代入 5var result = 6 array.map(function(string) { 7 // 処理: 8 // * 「1つ以上続く空白を空文字に置換」 9 // * 「カンマを区切りとして文字列を配列に変換」 10 // * 「スペース区切りで配列の各要素を文字列として結合」 11 return string.replace(/\s{1,}/, '') 12 .split(',') 13 .join(' '); 14 }).join("\n") // 「\n を加えつつ配列を文字列に変換」 15console.log(result); 16// => 17/* 18エラー エラー A B 19エラー エラー A B 20エラー エラー A B 21*/

詳細については下記リンク先を参照してみてください

何か参考になれば幸いです

Links

投稿2017/05/17 10:56

gouf

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kusunoki

2017/05/17 14:14

ありがとうございます。 解釈として arrayに文字列を三つ入れている resultにstringに対するmap関数とjoin関数のセットを作っている map関数は配列から処理をした配列をつくってくれるもの。 そのmap関数の内容に、  1,空白の置き換え  2,カンマをのぞく  3,全角スペースを加えてつつ全体をくっつけている そしてそれにjoinでさらに改行を加えている であっているでしょうか。 使用したいテキストには,や空白を含むこともあるのです。 そしてYは実際には `var Y = Sheet01.getRange(1,1,maxRow).getValues();とし、シートから取ってきています。`   この場合は教えていただいたものでは動きませんでした。 また、 エラー エラー A B エラー エラー A B エラー エラー A B よりは エラー エラー A B となると理想的です。 カンマを改行に置換すればよいかとも思いましたが、文章にはカンマが含まれることもあるのです。 以下は 自分のためのリンクメモです .map();の参考 http://hfuji.hatenablog.jp/entry/2016/06/28/232820 https://syncer.jp/javascript-reference/array/map .split https://www.google.co.jp/url?sa=t&source=web&rct=j&url=http://uxmilk.jp/23592&ved=0ahUKEwjHvISt7fbTAhWJlZQKHWDPDNoQFgg0MAI&usg=AFQjCNEQUinJbYOpTLslgvD_6EU8HhTzmQ&sig2=wXIZwOFaOjC35mWLPCjOvA function式の作り方 パターン(引数が複数あるのがなんなのかわからない) http://qiita.com/alucky0707/items/ef18d6d8db5a7fb9307e
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問