I am sure this is what you are going for
var data = [{x: 1, y: 2, z: 3}, {x: 4, y: 5, z: 6}];
console.log(_.merge(data[0], data[1], function(a, b) {
return [a, b];
}));
# { x: [ 1, 4 ], y: [ 2, 5 ], z: [ 3, 6 ] }
For N objects in an array,
var data = [{x: 1, y: 2, z: 3}, {x: 4, y: 5, z: 6}, {x: 7, y: 8, z: 9}];
console.log(_.merge.apply(null, data.concat(function(a, b) {
return _.isArray(a) ? a.concat(b): [a, b];
})));
# { x: [ 1, 4, 7 ], y: [ 2, 5, 8 ], z: [ 3, 6, 9 ] }