Js 修改对象数组里的对象属性名

900 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


前言

提示:以下是本篇文章正文内容,下面案例可供参考


假设,我们从后端取回来的Json对象数据中,有某些属性名不是我们想要的,就需要给它们重新命名。例如:

//原数组
array:[{old_name:1},{old_name:2}]
//改了属性名之后的数组
array:[{new_name:1},{old_name:2}]

方法一:

// array为数组,old_name为修改前属性名,new_name为修改后属性名
    JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name')) 
//例:
//把checkboxItems的id项转换为value
 this.setData({
 	checkboxItems:JSON.parse(JSON.stringify(this.data.checkboxItems).replace(/id/g, 'value')) 
 })

说明:

  1. JSON.stringify() 把json对象 转成 json字符串
  2. 使用正则的 replace() 方法替换属性名
  3. JSON.parse() 再把json字符串 转成 json对象

如需修改多个属性: 可以多次调用replace方法

JSON.parse(JSON.stringify(array).replace(/old_name1/g, 'new_name1').replace(/old_name2/g, 'new_name2').replace(/old_name3/g, 'new_name3'))

方法二:

可以使用数组的map方法

//array为数组,old_name为修改前属性名,new_name为修改后属性名

array.map(function(g){
return {new_name1:g.old_name1,new_name2:g.old_name2,new_name3:g.old_name3}
})