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

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

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

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

JavaScript

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

Q&A

解決済

1回答

1686閲覧

二次元配列のデータが取れない

Zuian

総合スコア12

Google Apps Script

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

JavaScript

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

0グッド

0クリップ

投稿2020/02/15 10:00

下記、二次元配列でデータを取得し、別メソッドで使用したところ、二次元配列としてデータが出せない状況になりました。

google

1function dateChanging1(){ 2 var data1 = DBSheet.getRange(1, 1, 31, 14).getValues(); 3 for(var i = 0; i < data1.length; i++){ 4 data1[i][0] = Utilities.formatDate(data1[i][0],"JST","yyyy/MM"); 5 } 6 countData(data1);//ここではdata1が二次元配列になっていることを確認しています 7 makeNewdata(data1) 8} 9 10function countData(data1){ 11 var counter = 0; 12 for(var i = 0; i < data1.length; i++){ 13 if(data1[0][0] == data1[i][0]){ 14 counter++; 15 } 16 } 17 makeNewdata(counter) 18} 19 20//このメソッドでエラーが起きました。メソッドは書き途中です 21function makeNewdata(data1,counter){ 22 var newDBData = []; 23 Logger.log(data1[0][0])//エラー 24 for(var i1 = 0; i1 < data1.length; i1++){ 25 var A = DBSheet.getRange(217, i1, 12, 1).getValues().reduce(function(p, c){ 26 var v = 0; 27 for(var i2 = 0; i2 < 12; i2++){ 28 if(+c[i2]) v += c[i2]; 29 } 30 return p + v; 31 }, 0); 32 newDBData.push(A); 33 } 34 Logger.log(newDBData); 35 input(newDBData) 36}

エラー内容:
TypeError: Cannot read property '0' of undefined

やったこと:
エラー箇所でdata1、data1[0]でやったところログは問題なくでました。
二次元配列でとってこれていることを確認してます。

何が原因かわかりません。ご教授いただけると幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

makeNewdata関数の定義部分は引数が2つですが、

GAS

1//このメソッドでエラーが起きました。メソッドは書き途中です 2function makeNewdata(data1,counter){ 3... 4}

実際にmakeNewdataを呼んでいるところでは、1つしか渡していません。そのせいではないでしょうか。

GAS

1function dateChanging1(){ 2... 3 countData(data1);//ここではdata1が二次元配列になっていることを確認しています 4 5 // 1つしか渡していない 6 makeNewdata(data1) 7} 8 9function countData(data1){ 10... 11 12 // 1つしか渡していない 13 makeNewdata(counter) 14}

makeNewdata関数に、正しく引数を渡してあげてください。

投稿2020/02/15 10:12

編集2020/02/15 10:14
dodox86

総合スコア9183

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

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

Zuian

2020/02/15 10:15

ありがとうございます!function countData()からmakeNewdata(data1,counter)という形で渡すようにしたところ、解決しました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問