You can parse your array into a JSON-string to store it:
.push() is a function, therefore it needs () and not the [] array-syntax.
var elems = [];
elems.push('1');
elems.push('2');
elems.push('3');
$('#input_hidden_field').val(JSON.stringify(elems)); //store array
var value = $('#input_hidden_field').val(); //retrieve array
value = JSON.parse(value);
To create an object just change the definition of elems and the storage of the values:
var elems = {};
elems[0] = '1';
elems[1] = '2';
elems[2] = '3';
Demo
Reference
.stringify()
.parse()