JavaScript优雅地修改对象属性名

在项目开发中总会需要对对象进行格式化以便处理,这其中就涉及到了修改对象的属性名,也就是对象键名的修改。比如在处理下面这个对象时const obj = {
name :
Bobo ',
job: ' Master',
numbe

[时间:05-30]    [浏览:]    [放入收藏夹]    [查看详情]

在项目开发中总会需要对对象进行格式化以便处理,这其中就涉及到了修改对象的属性名,也就是对象键名的修改。

比如在处理下面这个对象时

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 ,感谢作者分享实用知识


标签: