在项目开发中总会需要对对象进行格式化以便处理,这其中就涉及到了修改对象的属性名,也就是对象键名的修改。
比如在处理下面这个对象时
const obj = { name : Bobo ', job: ' Master', number: 1234 };
采用传统的操作方式就是进行一个拷贝处理
obj ["lastName"] = obj ["name"]; delete obj["name"] console. Log(obj); //{ job: 'Master', number: 1234, las tName: Bobo ' }
但是当需要成批的修改键名,而且数据比较多时,此方式显然不能胜任,这会导致代码量激增,容易出产BUG,在JavaScript中如果涉及到对象的拷贝还有深浅之分。
因此有必要构建一个特定的方法来实现对对象属性名称的修改,而且要是优雅的,能够批量完成的方式。
//用提供的值替换多个对象键名称 const renameKeys = (keysMap, obj) => object . keys ( obj) . reduce( (acc, key) => ({ acc, { [keysMap[key] I1 key]: obj[key] } }), {} );
在这里借助Object.keys()、Array.prototype.reduce()和扩展运算符(...)就可以轻松完成对应键名的修改,支持批量操作,此后只需要调用这个方法就能快速和优雅地得到需要的结果
console. Log (renameKeys({ name: ' fi rstName number: ' id' }, obj)); //{ job: 'Master', id: 1234, Las tName: ' Bobo ' }
本文转载自:精准像素:11px.cn ,感谢作者分享实用知识