2020-07-31
描述
创建一个对象,他的值为原有对象的每一个值经过提供函数运行后的结果,但键还是原有提供对象的键。
提示
- 使用
Object.keys()
迭代对象的键 - 使用
Array.prototype.reduce()
创建一个新的对象,使其有着相同的键和经过fn
映射的值
代码
const mapValues = (obj, fn) =>
Object.keys(obj).reduce((acc, k) => {
acc[k] = fn(obj[k], k, obj);
return acc;
}, {});
示例
请对值进行批量相同的操作:
const users = {
fred: { user: 'fred', age: 40 },
pebbles: { user: 'pebbles', age: 1 }
};
mapValues(users, u => u.age); // {fred: 40, pebbles: 1}