No mention of reduce...
Object.keys(obj)
.map(k => foo(k, obj[k]))
.reduce((a, b) => Object.assign(a, b), {});
that's one of my favorites... break up an object/hash map, do something to each, and reconstruct hash map... assuming `foo(k, v)` returns `{ [k]: bar(v) }`;
map is cool and powerful, but so is reduce.