Uma correção de mix para o bug de sublinhado do mapa : P
_.mixin({
mapobj : function( obj, iteratee, context ) {
if (obj == null) return [];
iteratee = _.iteratee(iteratee, context);
var keys = obj.length !== +obj.length && _.keys(obj),
length = (keys || obj).length,
results = {},
currentKey;
for (var index = 0; index < length; index++) {
currentKey = keys ? keys[index] : index;
results[currentKey] = iteratee(obj[currentKey], currentKey, obj);
}
if ( _.isObject( obj ) ) {
return _.object( results ) ;
}
return results;
}
});
Uma solução simples que mantém a tecla correta e retorna como objeto. Ainda é usada da mesma maneira que eu convidava. Você poderia usar essa função para substituir a função _.map.
ou simplesmente como eu o usei como um mixin
_.mapobj ( options , function( val, key, list )