2020-07-30
描述
创建一个对象,他的键为每一个键经过提供的函数运行后的结果,但值还是原有提供对象的值。
提示
- 使用
Object.keys()
迭代对象的键 - 使用
Array.prototype.reduce()
创建一个新的对象,使其有着相同的值和经过fn
映射的键
代码
const mapKeys = (obj, fn) =>
Object.keys(obj).reduce((acc, k) => {
acc[fn(obj[k], k, obj)] = obj[k];
return acc;
}, {});
示例
请对键进行一顿猛如虎的操作:
mapKeys({ a: 1, b: 2 }, (val, key) => key + val); // { a1: 1, b2: 2 }