是否没有通用/标准的Javascript或Coffeescript函数,可以转换对象/映射/哈希表的值?
jQuery有$.map
,但它只生成Array
。
Underscore有_.map
,但它也只生成Array
。
明确一下,我正在寻找像这个例子中的函数。(此示例使用Coffeescript而不是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
for own k, v of obj
来防止被原型扩展所影响。我会直接使用for
循环而不是帮助函数,因为这是一个罕见的情况。 - Ricardo Tomasi