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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

16030閲覧

Java ScriptのJSONで入れ子追加

1nakaji

総合スコア187

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/09/08 18:29

編集2015/09/08 18:43

Java Scriptで以下のような動作を再現させたいです。

var html = {};
var abc = {
"name":"abc",
"ad":"ad"
};
var xyz = {
"name":"xyz",
"ad":"ad2"
};

html{
abc : {
"name":"abc",
"ad":"ad"
},
xyz : {
"name": "xyz",
"ad": "ad2"
}
};

形式がまちがっているかもしれませんが、
要するに入れ子にしたいです。

var abc = {
"name":"abc",
"ad":"ad"
};

また最初もこのようにすることにもこだわらず、
要は中カテゴリを大カテゴリにまとめる
というようなことができればと思います。

jQueryなどを利用してもよいのですが、
どのような方法があるのでしょうか?

教えていただけますと幸いです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

質問文のコードはオブジェクト初期化子に見えますが、最終的にJSONに変換したいという事でしょうか。

JavaScript

1var abc = {"name": "abc", "ad":"ad"}; 2var xyz = {"name":"xyz", "ad":"ad2"}; 3var html = {abc: abc, xyz: xyz}; 4 5console.log(JSON.stringify(html)); // {"abc":{"name":"abc","ad":"ad"},"xyz":{"name":"xyz","ad":"ad2"}}

(2015/09/08 18:27追記)
オブジェクトはプロパティアクセス演算子で再代入可能です。

JavaScript

1html.hoge = {name: 'ddd', ad: 'ad3'};

投稿2015/09/08 23:11

編集2015/09/09 09:27
think49

総合スコア18162

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

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

1nakaji

2015/09/09 09:23

ご回答ありがとうございます。 >質問文のコードはオブジェクト初期化子に見えますが この辺りの言葉、適当に使っております。 申し訳ございません。 >var html = {abc: abc, xyz: xyz}; こちら毎回abc,xyzと、 すべて書く必要がありますか? 別の方へのコメントでもかいているのですが、 配列のイメージでhtml.push(abc)で後ろに 追加できるような方法がないかと思いまして。 処理が進むにつれてDBからabcなどの 内容を取得して追加していくイメージです。 またお時間あればよろしくお願いいたします。
think49

2015/09/09 09:28

オブジェクトはプロパティアクセス演算子でプロパティに再代入可能です。 親コメントにコードを追記しました。
1nakaji

2015/09/09 10:27

お忙しい中ご回答感謝いたします。 勉強になります。 あとひとつだけ・・・ html.hoge = {name: 'ddd', ad: 'ad3'}; このhogeを変数などで、 動的に変えることは可能なのでしょうか。 for(i=0;i<10;i++){ html.i = {name: i, ad: 'ad3'}; } で代入して、 for(i=0;i<10;i++){ console.log(html.i.name); } のように取り出すなどです。 こういったことができるのか、 また別の方法が思いつけば 教えていただければ幸いです。
think49

2015/09/09 10:31

親コメントのプロパティアクセス演算子のリンク先を参照してください。 ブラケット表記法は変数を値に取れます。 オブジェクトのプロパティを列挙するには for-in や Object.keys を使用して下さい。
1nakaji

2015/09/09 11:10

ご回答ありがとうございます。 リンクを貼っていただいていたのですね。 気づきませんでした。 ありがとうございます。 こちら参照させていただきます。 ご丁寧にありがとうございます。
guest

0

オブジェクトリテラルで入れ子にするだけなら、下記のように書けます。

javascript

1var html = { 2 "abc": { 3 "name":"abc", 4 "ad":"ad" 5 }, 6 "xyz": { 7 "name":"xyz", 8 "ad":"ad2" 9 } 10};

投稿2015/09/09 01:47

ngyuki

総合スコア4514

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

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

1nakaji

2015/09/09 09:20

ご回答ありがとうございます。 こちら処理を進める過程で、 随時追加をしていきたいんです。 var html = { "abc": {"name":"abc","ad":"ad"},"xyz": {"name":"xyz","ad":"ad2"}}; 次には var html = { "abc": {"name":"abc","ad":"ad"},"xyz": {"name":"xyz","ad":"ad2"},,"def": {"name":"def","ad":"ad3"}}; という感じです。 配列とかでいえば、 html.push(abc)とかで後ろに追加できるかと思いますが、 そういったイメージです。 またお時間あればご回答頂けますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問