2011年7月25日月曜日

JavaScriptで連想配列(Object)のキーが並び変わる

Chromeで、JSONで受け取ったObjectをループで処理しようとしたら、Firefoxと処理される順番が違うという現象が発生。
for 〜 in でも jQueryのeachでも同じ現象。

どうやら、整数っぽい文字列がキーになっている場合、そのキーが先頭に来てる様子。
頭にAとかつけると

いろいろ調べてたら下記のページを発見。

Chrome と Opera は Object のキーが整数っぽいやつを勝手にソートしてしまう

そもそもObjectのキーは並び順が保証されてないのかな?

仕方ないのでキーの並び順を定義する配列を別で作って処理する事にしよう。