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

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

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

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

Q&A

解決済

3回答

166閲覧

js 初期値が決まっていない多次元配列の宣言

zak

総合スコア35

JavaScript

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

0グッド

0クリップ

投稿2018/03/19 09:01

前提・実現したいこと

初期値が決まっていない多次元配列(オブジェクト)の宣言をきれいに記述したいです。
ネット上で調べても、初期値が決まっている場合が多く
自分がほしい答えを探し出すことが出来ませんでした。

やりたいことのイメージ

javascript

1var object1 { 2 property1: { 3 array1: [], 4 array2: [] 5 }, 6 property2: { 7 array1: [], 8 array2: [] 9 }, 10 property3: { 11 array1: [], 12 array2: [] 13 } 14}

Error
Uncaught SyntaxError: Unexpected token {
object1 の宣言部分で上記エラーが発生します。

現状

javascript

1var object1 = {}; 2object1.property1 = {}; 3object1.property1.array1 = []; 4object1.property1.array2 = []; 5object1.property2 = {}; 6object1.property2.array1 = []; 7object1.property2.array2 = []; 8object1.property3 = {}; 9object1.property3.array1 = []; 10object1.property3.array2 = [];

現状は上記のように初期化していますが、
やりたいことのイメージに近いやり方で初期化出来ませんでしょうか。

よろしくお願いいたします。

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

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

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

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

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

kszk311

2018/03/19 09:06

とりあえず、やりたいことのイメージの一行目を「var object1 = {」にしてみましょうか。それでエラー消えませんかね?
guest

回答3

0

こういうことですか?

var object1 = { property1: { array1: [], array2: [] }, property2: { array1: [], array2: [] }, property3: { array1: [], array2: [] } } console.log(object1)

console.logの出力結果

{ property1: { array1: [], array2: [] }, property2: { array1: [], array2: [] }, property3: { array1: [], array2: [] } }

投稿2018/03/19 09:09

HayatoKamono

総合スコア2415

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

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

zak

2018/03/19 09:41

ありがとうございます。 代入演算子が抜けていることに気が付きませんでした。。。
guest

0

ベストアンサー

js

1var object1 = { // イコールが抜けています 2 property1: { 3 array1: [], 4 array2: [] 5 }, 6 property2: { 7 array1: [], 8 array2: [] 9 }, 10 property3: { 11 array1: [], 12 array2: [] 13 } 14}

投稿2018/03/19 09:05

kei344

総合スコア69458

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

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

zak

2018/03/19 09:40

ありがとうございます。 代入演算子が抜けていることに気が付きませんでした。。。
guest

0

雑ですが、こんな感じで

javascript

1var object1={}; 2["property1","property2","property3"].forEach(function(x){ 3 object1[x]={}; 4 ["array1","array2"].forEach(function(y){ 5 object1[x][y]=[]; 6 }); 7}); 8console.log(object1);

投稿2018/03/19 09:13

yambejp

総合スコア114968

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

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

zak

2018/03/19 09:43

ありがとうございます。 このような初期化方法があったのですね。 こちらの方がよりスマートに記述できそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問