mapValues - 根据提供函数返回的值映射一个新对象

优质
小牛编辑
138浏览
2023-12-01

使用提供的对象相同的键创建一个对象,对应值是通过每个值运行提供函数后生成的值。

使用 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 }