The typical way of creating a Javascript object is the following:
var map = new Object();
map[myKey1] = myObj1;
map[myKey2] = myObj2;
I need to create such a map where both keys and values are Strings. I have a large but static set of pairs to add to the map.
Is there any way to perform something like this in Javascript:
var map = { { "aaa", "rrr" }, { "bbb", "ppp" } ... };
or do I have to perform something like this for each entry:
map["aaa"]="rrr";
map["bbb"]="ppp";
...
Basically, remaining Javascript code will loop over this map and extract values according to criterias known 'at runtime'. If there is a better data structure for this looping job, I am interested too. My objective is to minimize code.
JavaScript's object literal syntax, which is typically used to instantiate objects (seriously, no one uses new Object
or new Array
), is as follows:
var obj = {
'key': 'value',
'another key': 'another value',
anUnquotedKey: 'more value!'
};
For arrays it's:
var arr = [
'value',
'another value',
'even more values'
];
If you need objects within objects, that's fine too:
var obj = {
'subObject': {
'key': 'value'
},
'another object': {
'some key': 'some value',
'another key': 'another value',
'an array': [ 'this', 'is', 'ok', 'as', 'well' ]
}
}
This convenient method of being able to instantiate static data is what led to the JSON data format.
JSON is a little more picky, keys must be enclosed in double-quotes, as well as string values:
{"foo":"bar", "keyWithIntegerValue":123}