var arr = {};
arr['foo'] = 'bar';
alert(arr.foo); // alerts 'bar'
We can also create this kind of arrays in a dynamic way, like so:
var arr = {};
var items = ['foo,bar', 'boo,baz'];
for(var i=0; i<items.length; i++) {
var item = items[i];
var values = item.split(',');
arr[values[0]] = values[1];
}
alert(arr.foo);
alert(arr.boo);
jQuery uses this kind of array-like objects for some of its Ajax methods (such as $.post()). We can actually retrieve the names and values of form elements and turn them in an associative array. Example:
var values = {};
$('#form :input').not(':submit').each(function() {
var $input = $(this);
var name = $input.attr('name');
var value = $input.val();
values[name] = value;
});
Now we can use $.post():
$.post('process.php', values, function(response, content){
// do something here
});
As you can see, retrieving this kind of values is pretty straightforward.