Help us understand the problem. What is going on with this article?

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 文字列か、空文字列を含む、文字列に変換できるあらゆるものを使えます。

ledsun
編集リクエスト、コメント大歓迎です。
luxiar
Ruby on Rails専門のWebアプリケーション開発に特化した町田の受託開発企業です
http://www.luxiar.com/index.html
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした