My humor detector has been notoriously malfunctioning lately. But in case you were serious, I'd want to replace your functional code with this functional code:

            var post_names = _.chain(changes).filter(function(change) {
                return (!change.erase);
            }).map(function(change) {
                var after = change.rename || change.id;
                return [post_names[change.name(after)], 1];
            }).build().value();