Skip to content
Advertisement

Initialise an object with array properties

How can I initialise an object in JavaScript, the properties of which would be arrays?

I want to have an object of this format:

JavaScript

My usecase is the following:

– When a property does not exist, create this property which should be an array and add a number.

– When a property exists already, push the number to that array; this way I cannot initialise an array every time.

What I’ve done so far is this:

JavaScript

I am getting this error:

Uncaught TypeError: Cannot read property ‘push’ of undefined

which makes sense, as the property has not been initialised as an empty array.

Advertisement

Answer

Add this snippet:

JavaScript

If obj[x] is undefined, then it hasn’t been initialized. Therefore, undefined || [] resolves to [], an empty array, to which 1, or whatever data you want, can be concatenated.

Advertisement