卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

JavaScript优雅地修改对象属性名

在项目研发中总会需要对对象展开格式化以便处置,这其中就牵涉到了修正对象的属性名,也就是对象键名的修正。

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

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 ' }

卓越飞翔博客
上一篇: ThinkPHP发布V6.0.7版路由修正性能提升
下一篇: 什么是SQL注入,如何防护它?
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏