js教程

JavaScript优雅地修改对象属性名

我的站长站 2021-01-20 人阅读

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

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

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


相关专题
javascript
javascript
2022-09-12 10

学好javascript是开发必备基础知识,任何开发都离不开javascript.我的站长站为您整理javascript教程,javascript源码,更多javascript资源请访问我的站长站。...

相关推荐
  • JavaScript语法
  • JavaScript ES6-11版本语法大全教程
    JavaScript ES6-11版本语法大全教程

    视频教程说明JavaScript ES6-11版本语法大全教程,共77课时,淘宝购买免费分享给大家。JavaScript ES6教程截图课程列表9-7 空值合并运算符:Nullish coalescing Operator_.mp49-6 可选链:Optional chai...

    视频教程 56 2年前
  • javascript制作随机样式标签云方法
    javascript制作随机样式标签云方法

    我的站长站分享一段超简单的javascript随机样式标签云方法,比网上那些长篇大论的简单好理解多了,一看就懂,效果如下。JS代码$(".tags a").each(function(){var x = 5;var y = 9;var rand = parseInt...

    js教程 75 3年前
  • JavaScript优雅地修改对象属性名

    在项目开发中总会需要对对象进行格式化以便处理,这其中就涉及到了修改对象的属性名,也就是对象键名的修改。比如在处理下面这个对象时const obj = {name :Bobo ',job: ' Master',number: 1234};采用传统的操作方式就是进行一个拷贝处理obj [...

    js教程 204 3年前
最新更新
  • js截取字符串教程

    slice()方法接受两个参数,起始索引和结束索引(可选)。它返回从起始索引到结束索引(不包括结束索引)之间的子字符...

    js教程 1个月前
  • find findIndex indexOf索引选择器使用方法

    find使用方法find方法是ES6引入的一种数组方法,可以用来查找数组中符合条件的元素。语法是:array.find(callba...

    js教程 2个月前
  • js复制网页内容教程

    Async Clipboard API方法HTML5新增的方法,无需引入第三方插件,直接就可以复制内容。低版本的浏览器可能会不兼...

    js教程 2个月前
  • js获取字符长度函数分享

    js获取字符长度函数function objLen(str) { if (str == null) return 0; if (typeof str != "string") { ...

    js教程 2个月前
  • 网站LED跑马灯效果广告代码

    网站可以看到很多的论坛网站都会用到这种网站LED跑马灯效果,这种效果实现也很简单,分享给大家。LED跑马灯效果...

    js教程 3个月前