Czy nie ma wszechobecnej/standardowej funkcji JavaScript lub Coffeescript, która przekształca wartości obiektu/mapy/hasha?Jakakolwiek funkcja `map` Javascript lub Coffeescript, która przekształca wartości * obiektu *?
jQuery has $.map
ale produkuje tylko Array
.
Underscore has _.map
ale produkuje również tylko Array
.
Dla jasności, taka funkcja jest tym, czego szukam. (Ten przykład jest napisany w coffeescript nie 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
Wygląda na to, że odpowiedziałeś na własne pytanie :) Upewnij się, że używasz 'for own k, v of obj', aby zapobiec byciu przez prototypowe rozszerzenia. Chciałbym użyć pętli 'for' bezpośrednio zamiast funkcji pomocnika, ponieważ jest to rzadkość. –