こんにちは、なかわけです。
今日仕事中にJavascriptにハメられたことをメモ。
メモしておけば同じ過ちをしないと思ったので。
2次元の連想配列が作りたくで以下のように書きました。
//TypeA
TypeA = {};
TypeA['hoge']['fuga'] = 'piyo';
alert(TypeA['hoge']['fuga']);
こうすると、alertはでないし、なかわけの環境ではスクリプトエラーも出ませんでした。
おかしいなあと思って、その時はとりあえず1次元の連想配列でやり過ごしました。
お家帰って思いつきました。
TypeA = {};
はObjectであっても、
TypeA['hoge']
はObjectではないのでfugaプロパティが追加できない(配列的に扱えない)!
てことで、以下
//TypeB
TypeB = {};
TypeB['hoge'] = {fuga : 'piyo'};
alert(TypeB['hoge']['fuga']);
のように書くか、もしくは
//typeC
TypeC = {};
TypeC['hoge'] = {};
TypeC['hoge']['fuga'] = 'piyo'
alert(TypeC['hoge']['fuga']);
のように書く必要があったのですね。
あーしょうもないことに時間費やした・・・。
でも、ここにメモしたので一生忘れない!
