月別アーカイブ: 2015年6月

【JavaScript】Arrayに数字以外のキーを持たせるべきではない

自分に対する戒めの記事

JavaScriptはオブジェクトであればArrayだろうとFunctionだろうとキーを持たせることが出来る ゆえにArrayでも数字以外のキーも持たせることが出来る。

なぜこんなことを書いているかというとArrayをJSONに変換する時にこの失敗に気付いてしまったからだ。

JSON.strigifyでArrayを文字列化したとき、数字以外のキーは拾われない。その同じArrayをJSON.parseすると見事に数字以外のキーが無くなった配列が返される

これはWebStorageを使う時などに深刻なバグになりかねない。

だからArrayに数字以外のキーを持たせるのではなくObjectに数字のキーを持たせる「ArrayのようなObject」にすべきだ。

JavaScript associative array to JSON