¿No existe una función ubicua/estándar de Javascript o Coffeescript que transforma los valores de un objeto/mapa/hash?Cualquier función `map` de Javascript o Coffeescript que transforma object * values *?
jQuery has $.map
pero produce Array
s solamente.
Underscore has _.map
pero también produce Array
s solamente.
Para ser claro, una función como esta es lo que estoy buscando. (Este ejemplo está escrito en CoffeeScript no Javascript.)
# Transforms the values in a map. (Doesn't modify `obj` — returns a new map.)
# Example usage:
# mapObjVals({ a: 'aa', b: 'bb'}, (key, value) -> value + '_!')
# --> { a: 'aa_!', b: 'bb_!' }
mapObjVals = (obj, f) ->
obj2 = {}
for k, v of obj
obj2[k] = f k, v
obj2
Parece que has respondido a tu propia pregunta :) Solo asegúrate de usar 'para own k, v of obj' para evitar que te muerdan las extensiones de los prototipos. Yo usaría el bucle 'for' directamente en lugar de una función auxiliar, ya que esto es una ocurrencia rara. –