javaScript改变对象属性名的两种方法

在项目开发中我们总会遇到一些需要改变对象中属性名的需求下面我为大家总结一下改变对象属性名的几种方法:
首先我们先定义一个json数组

let jsonParam =[{id:1,name:'张三',age:24},{id:2,name:'李四',age:23}]

我们就以上面的数组为例,我想要将数组对象中的name改为nickName

1.将json数组转为字符串,用正则表达式替换掉name,再将字符串转回json数组
let newJsonParam=JSON.parse(JSON.stringify(jsonParam).replace(/name/g,"nickName"));

此方法有2个缺点,1.如果属性值匹配到会被更改 2.属性名中有部分匹配到也会被更改

2.利用for···in遍历对象修改属性名
/**
     * 修改属性名为 
     * @param {旧的参数名} oldVal
     * @param {新的参数名} newVal
     * @param {json} json数组
     */
  let  arr= function (oldVal, newVal, json) {
      for (var i in json) {
        for (var j in json[i]) {
          if (j == oldVal) {
            json[i][newVal] = json[i][j]//修改属性名为newVal
            delete json[i][oldVal]//删除oldVal
          }
        }
      }
    };
 let newJsonParam=arr('name','nickName',jsonParam);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。