Matrizes de mapeamento e poda

Encontro-me constantemente mapeando e reduzindo entradas vazias em uma matriz. Acontece com tanta frequência que decidi criar uma função auxiliar que usa mapas e, em seguida, remove as entradas vazias. Mais alguém faz isto? Você tem uma maneira mais concisa / menos sujeita a erros de fazer isso? Talvez acorrentando _.clean()com lodash ?

// the function I keep coming back to
function mapPrune (array, callback) {
return array
.map(callback)
.filter( function (el) {
return el;
});
}

// example use
var array = ['', 'no', '', '', '', 'empty', 'values', '', '', '' ];

array
= mapPrune( array, function (el) {
// Test the value
if (el) return el.toUpperCase();
});

console
.log(array.join(' '));
// logs 'NO EMPTY VALUES'