Just because it's another solution...
This assumes that you meant that a1[i][0] is the index of the associated value in a2.
var a1 = [[0, 3910], [1, 4910], [2, 19401]];
var a2 = [1384559999, 1371254399, 1360799999];
var a3 = [];
for(var i = 0; i < a1.length; i++) {
tmp = [a2[a1[i][0]], a1[i][1]]
a3.push(tmp);
}
console.log(a3);
// [ [ 1384559999, 3910 ],
// [ 1371254399, 4910 ],
// [ 1360799999, 19401 ] ]
This still works if you change the value of the index, for example...
var a1 = [[2, 3910], [1, 4910], [0, 19401]];
// Should be...
// [ [ 1360799999, 3910 ],
// [ 1371254399, 4910 ],
// [ 1384559999, 19401 ] ]
Here's what .map would look like if the first value in each pair in a1 are supposed to be the index of the value in a2.
var a1 = [[0, 3910], [1, 4910], [2, 19401]];
var a2 = [1384559999, 1371254399, 1360799999];
console.log(a1.map(function(current, index){
return [ a2[current[0]], current[1] ];
}));
//[ [ 1384559999, 3910 ],
// [ 1371254399, 4910 ],
// [ 1360799999, 19401 ] ]