Welcome to WebmasterWorld Guest from

Forum Moderators: open

Message Too Old, No Replies

Single Line Associative Array Object

Can it be done in a single line?


JAB Creations

7:40 am on Oct 6, 2011 (gmt 0)

WebmasterWorld Senior Member jab_creations is a WebmasterWorld Top Contributor of All Time 10+ Year Member

A numerical array can be done in JavaScript in a single line...

var a = new Array('a','b','c');

However I'm curious if there is a way to define an associative object in a single line using the new Object syntax instead of the following shortcut...

var a = {'a':'1','b':'2','c':'3'};

I already tried the following which does not work (using curly, curved or solid brackets)...

var a = new Object{'a':'1','b':'2','c':'3'};

Also using a semi-colon to separate items on the same line doesn't count. Thoughts please?

- John


9:47 am on Oct 6, 2011 (gmt 0)

WebmasterWorld Senior Member penders is a WebmasterWorld Top Contributor of All Time 5+ Year Member Top Contributors Of The Month

By calling:
var a = new Object(something);

You are passing something to the Objects underlying constructor method. For your own objects this is whatever you define. In the case of the base Object, this results in the creation of an object of whatever data type you pass to it...

var myNumber = new Object(123); // number Object 
var myString = new Object('Hello'); // string Object
var myObject = new Object({'a':'1','b':'2','c':'3'}); // object Object

So, I think, in order to do what you are trying to achieve you would need to pass an object literal to the constructor (as in the last example). But I don't think there is any point in this (and jslint advises against this), since you might as well just define the object literal.

Featured Threads

Hot Threads This Week

Hot Threads This Month