var a = new Array();
a["hogehoge"] = true;
Arrayオブジェクトはこんな風に「連想配列」として使える、とよく紹介されていますが、
for (var i = 0; i < a.length; i++)
ループを回して要素にアクセスしようとすると、a.lengthがゼロを返すのでループが実行されません。
つまり、連想配列のキーとして渡した文字列は、Arrayオブジェクトのプロパティとして扱われるだけなのです。
正しくは、
for (var i in a)
となります。すっかり「連想配列」という名前に騙されてしまったのでした。orz