Unexpected Token Error When Using Array Items As Keys In An Object

- 1 answer

In Chrome, the following JavaScript code throws an Unexpected Token error:

var somearray = ["foo","bar"];
var someassoc = {somearray[0]:somearray[1]};

The error thrown:

Uncaught SyntaxError: Unexpected token [

When instead I would expect that it should make an object with a key of somearray[0] and an item of somearray[1] for that key.

So, why is this happening? An Unexpected Token normally means that a bracket has been misplaced somewhere, etc, but that is not the case here.



In JavaScript, when declaring an object, the key name should be always a simple string, for example:

var object = {'key': 'Hello World'};

However, if you would like to use a key name that is dynamic, like somearray[0], all you need to do is declare someassoc as an object:

var someassoc = {};

And then, set up a key-value combination, by doing:

someassoc.key = 'Hello World';


someassoc['key'] = 'Hello World';

Which in your case will be:

someassoc[somearray[0]] = somearray[1];

That's all :)