Reduce takes a list of values, and reduces it to a single value. What you are trying is not just reduce. You are trying to first group (by name) and then reduce each group. A possible implementation would be something like this, where you first group, and then map each group to a reduce operation that accumulates the score and appends the venue.
var input = [
{"score": 2, "name": "Jon", "venue": "A"},
{"score": 3, "name": "Jeff", "venue":"A"},
{"score": 4, "name": "Jon", "venue":"B"},
{"score": 4, "name": "Jeff", "venue":"B"}];
var output = _.map(_.groupBy(input, "name"), function(group, name) {
return _.reduce(group, function(memo, elem) {
memo.score += elem.score;
memo.venue.push(elem.venue);
return memo;
},
{ name: name, score: 0, venue: [] });
});