Javascriptって2次元の連想配列できないの?

金曜日, 11月 6th, 2009

こんにちは、なかわけです。

今日仕事中に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']);

のように書く必要があったのですね。
あーしょうもないことに時間費やした・・・。
でも、ここにメモしたので一生忘れない!

Tags: , , ,

One Response to “Javascriptって2次元の連想配列できないの?”

  1. 眼から鱗 より:

    気付かなかった…超助かりました

Leave a Reply

*