Edited at

JavaScriptのオブジェクトのキーに配列が使える

More than 1 year has passed since last update.


オブジェクトのキーに配列を使う

var a = {};

a[['key']] = 1;
a[['key']]; //1が取れる

オブジェクトリテラル中でキーに配列を使うと構文エラー

var a = {['key'], 1};


種明かし

配列が文字列化されてキーになっています。

['key']を文字列化すると "key" になります。

String(['key']) // "key"が返る

実際はkeyプロパティが設定されています。

var a = {};

a[['key']] = 1;
a.key; //1が取れる


仕様確認

Working with Objects - JavaScript | MDN


オブジェクトプロパティの名前には、正しい JavaScript 文字列か、空文字列を含む、文字列に変換できるあらゆるものを使えます。