id:drwatson このページをアンテナに追加 RSSフィード

2007.02.10

[]連想配列の罠

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

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/drwatson/20070210/1171110212