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

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

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

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

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

JavaScript

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

Q&A

1回答

880閲覧

配列において、キーの値に配列を追加したい

scanner0928

総合スコア0

Google Apps Script

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

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

JavaScript

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

0グッド

0クリップ

投稿2021/06/15 06:16

前提・実現したいこと

Google Apps Script内で作業しています。

配列において、キーの値に配列を追加したい。
以下のようなデータを作りたいです。
理由は、月ごとにデータを分けておき、後に月ごと処理したいためです。

Javascript

1var months = [ 2'2021年6月':[ 3 ['氏名': 'テスト太郎1', 4 'メールアドレス': 'test@test.com', 5 '予約日': '2021年6月11日', 6 ], 7 ['氏名': 'テスト太郎2', 8 'メールアドレス': 'test@test.com', 9 '予約日': '2021年6月21日', 10 ], 11 ['氏名': 'テスト太郎3', 12 'メールアドレス': 'test@test.com', 13 '予約日': '2021年6月30日', 14 ] 15], 16'2021年7月':[ 17 ['氏名': '7月太郎1', 18 'メールアドレス': 'test@test.com', 19 '予約日': '2021年7月11日', 20 ], 21 ['氏名': '7月太郎2', 22 'メールアドレス': 'test@test.com', 23 '予約日': '2021年7月21日', 24 ], 25 ['氏名': '7月太郎3', 26 'メールアドレス': 'test@test.com', 27 '予約日': '2021年7月30日', 28 ], 29] 30

発生している問題・エラーメッセージ

months['2021年7月']に、
['氏名': '7月太郎3',
'メールアドレス': 'test@test.com',
'予約日': '2021年7月30日',
],
を追加できません。

エラーメッセージ TypeError: Cannot read property 'push' of undefined

該当のソースコード

Javascript

1var thisEventMonth = '2021年7月'; 2months[thisEventMonth].push(obj);

根本的な考え方が間違っているかもしれません。
良い方法等をご教示いただきましたら幸いです。

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

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

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

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

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

maisumakun

2021/06/15 06:23

> 根本的な考え方が間違っているかもしれません。 根本的なところとして、ご提示のvar monthの定義が、JavaScriptとして正しくありません。
guest

回答1

0

根本的な考えというか、構文の誤りですね。

JavaScript

1var months = { 2 '2021年6月':[ 3 { 4 '氏名': 'テスト太郎1', 5 'メールアドレス': 'test@test.com', 6 '予約日': '2021年6月11日', 7 }, 8 { 9 '氏名': 'テスト太郎2', 10 'メールアドレス': 'test@test.com', 11 '予約日': '2021年6月21日', 12 }, 13 { 14 '氏名': 'テスト太郎3', 15 'メールアドレス': 'test@test.com', 16 '予約日': '2021年6月30日', 17 } 18 ], 19 '2021年7月':[ 20 { 21 '氏名': '7月太郎1', 22 'メールアドレス': 'test@test.com', 23 '予約日': '2021年7月11日', 24 }, 25 { 26 '氏名': '7月太郎2', 27 'メールアドレス': 'test@test.com', 28 '予約日': '2021年7月21日', 29 }, 30 { 31 '氏名': '7月太郎3', 32 'メールアドレス': 'test@test.com', 33 '予約日': '2021年7月30日', 34 }, 35 ] 36}; 37console.log(months); 38obj = { 39 '氏名': '7月太郎3', 40 'メールアドレス': 'test@test.com', 41 '予約日': '2021年7月31日', 42}; 43months['2021年7月'].push(obj); 44console.log(months);

投稿2021/06/15 09:51

hiro_app

総合スコア123

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

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

hiro_app

2021/06/15 09:52

もう少しログを吐き出させるとか、どこの処理までは動いているのかを確認するとよろしいかと思います。
scanner0928

2021/06/17 04:37

スクリプト例、ありがとうございます。 参照しながら、改善していきます。
scanner0928

2021/06/17 04:54

スクリプト例を、 var months = {}; console.log(months); obj = { '氏名': '7月太郎3', 'メールアドレス': 'test@test.com', '予約日': '2021年7月31日', }; months['2021年7月'].push(obj); console.log(months); のように、するとエラーが出ました。 存在しないキーにpushができない、ということでしょうか。
hiro_app

2021/06/17 05:06

どこでエラーが出ているのでしょうか? そこを見つけられるようにならないと、同じことの繰り返しになります。 console.log(行番号等); のような方法でもいいので、どこまで処理が進んで、どこでエラーが出ているのか特定させましょう。 それと、ただエラーが出たと言われましても、現コード内容もわかりません。 現在のコードに編集してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問