Talk is cheap. Show me your code

快速更改对象中的字段名

问题描述:

有这样一个对象

let params = {
  id: 123,
  name: 'WiseWrong',
  e_mail: '123@qq.com',
tell: '12345678', }

由于种种原因,需要将其中的字段名  e_mail 修改为 eMail

 

分析原因:

处理的方案有很多,比如用 for-in 语句遍历,或者 delete 之后再新增字段,但这两种方案都有问题

首先 for-in 遍历效率太低,直接忽略。使用 delete 处理基础类型很有效,但字段的顺序会变,而且对于引用类型还需要额外处理

最终我采用了 JSON + replace 的方式

 

解决方案:

let paramsJson = JSON.stringify(params);
paramsJson = paramsJson.replace(/e_mail/, 'eMail');
params = JSON.parse(paramsJson);

有朋友提到 key 和 value 相同的情况,这种情况只要把 key 写全就好了

paramsJson = paramsJson.replace(/"e_mail":/, '"eMail":');

 

posted @ 2019-12-18 11:31  Wise.Wrong  阅读(1323)  评论(0编辑  收藏  举报