在项目开发中我们总会遇到一些需要改变对象中属性名的需求下面我为大家总结一下改变对象属性名的几种方法:
首先我们先定义一个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);