使用提供的对象相同的键创建一个对象,对应值是通过每个值运行提供函数后生成的值。
使用 Object.keys(obj)
来迭代对象的键。 使用 Array.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 }