con toda honestidad y mi disculpa, no comprendo tu dilema. es algo asi lo que queras hacer?
 
Código:
 var data = [
{url:'1.jpg', caption: 'Juanxio, Juanxio Dos Tree.'}, 
{url:'2.jpg', caption: 'Tocayazo Santarelli.' }, 
{url:'3.jpg', caption: 'The view from Volcano Maderas.' }, 
{url:'4.jpg', caption: 'Beer and ice cream.' },
{url:'5.jpg', caption: 'Volcano Asención in Ometepe, Nicaragua.' }, 
{url:'6.jpg', caption: 'A Ceibu tree.' }, 
{url:'7.jpg', caption: 'The view from Volcano Maderas.' }, 
{url:'8.jpg', caption: 'Beer and ice cream. Esto está muy bien, es una buena herramienta, que espero les guste a todos, Aquí se las dejo, disfrutenla.' }
];
   quizas necesite abundar un poco mas en la repuesta. 
segun leyendo uno de tus 
ultimos post me hace entender que la variable 
x, y son array que contienen el filename y una descripcion, y lo que intentas hacer es crear un array master donde cada elemento es un objeto que contiene dos propiedades: el filename y caption. cabe mencionar que debe ser creado dinamicamente por lo cual usaras un bucle. 
si lo anterior es cierto, entonces es algo asi lo que necesitas:   
Código javascript
:
Ver original- var x = ['1.jpg', '2.jpg', '3.jpg' /*, ...*/]; 
- var y = ['Juanxio, Juanxio Dos Tree.', 'Tocayazo Santarelli.', 'The view from Volcano Maderas.' /*, ...*/]; 
- var data = []; 
- for(var i = 0; i < x.length; i++){ 
- data.push({filename: x[i], caption: y[i]}); 
- } 
es esto lo que intentabas? sino, deberias explicar mas tu asunto porque cada vez en tus respuestas no veo alguna modificacion de tu codigo original.