underscore.js is a wonderful tool. Unfortunately there are some things you might think it would support, that it either doesn't, or that are difficult to achieve.
Filtering objects is one of these things. Filtering arrays is easy as using _.filter, but not so objects.
Considering the supreme hack which is the following, one might seriously consider using _.mixin to directly extend underscore.js itself and hide some of the implementation details. Nevertheless, here are those details in all their gory glory:
var compactObj = _.pick.apply({}, [fullObj].concat(_.filter(_.keys(fullObj), function(K) {
return fullObj[K];
})));