Javascript
1function sample(){ 2 var obj = { 3 test1 : 255, 4 test2 : 'テスト2', 5 test3 : ['arr3_1','arr3_2'], 6 test4 : { 7 test4_1 : 'テスト4_1', 8 test4_2 : 'テスト4_2', 9 }, 10 } 11 12 obj['test5'] = 'テスト5' 13 obj['test5'['test5_1']] = 'テスト5_1' 14}
このときテスト5_1
のプロパティがundefinedになる理由はなぜでしょうか?
すでにtest5
の値が存在するからかと思いましたが、プロパティをtest6
にしても同様にundefinedでした。
ご教示のほど、よろしくお願いいたします。
追記
失礼しました。
オブジェクトのキーにさらにキーを設定し階層的に値を持たせたいです。
test4
のような形にしたいのですが、すでにtest5
の値が存在するときにどのように対処すればよいのかわかりませんでした。
また
obj['test5']['test5_1'] = 'テスト5'
上記だとtest5_1
が定義されていないプロパティ?でエラーになることを確認しました。
これはtest5
の値がすでに代入されているためかと考えましたが、新しいプロパティobj['test6']['test6_1'] = 'テスト6'
としても同様にエラーとなります。
そこで下記のように一度test5
でオブジェクト初期化をすることで一応エラー回避することが出来ました。
Javascript
1 obj['test5'] = new Object(); 2 obj['test5']['test5_1'] = 'テスト5_1'; 3 obj['test5']['test5_2'] = 'テスト5_2';
###しかし、本来やりたかったのは下記のような処理なのです。
Javascript
1 obj['test5'] = 'テスト5' 2 obj['test5']['test5_1'] = 'テスト5_1' 3 obj['test5']['test5_2'] = 'テスト5_2' 4console.log(obj.test5) 5//test5=テスト5{test5_1=テスト5_1,test5_2=テスト5_2}
テスト5
の値をもたせつつテスト5
のプロパティに値を追加するのは難しいのでしょうか?
回答5件
あなたの回答
tips
プレビュー