其他分享
首页 > 其他分享> > 修改后台传过来的json数据中对象的属性

修改后台传过来的json数据中对象的属性

作者:互联网

前言

今天在实习中遇到的一个小问题,后端传过来的一个json数据结构,但是对象中的属性名跟我需要的不一样(因为我是渲染echarts中的数据,属性名要一样)

这是后台传过来的数据:

需求是我需要把属性名val改成value

代码

            const t = ["id", "name", "type", "value"]
            let newArr = []
            data.forEach((item) => {    //后台来的数据
                let newObj = {};
                for (var i = 0; i < t.length; i++) {
                    console.log(Object.keys(item)[i])
                    newObj[t[i]] = item[Object.keys(item)[i]]
                }
                newArr.push(newObj)
            })
            console.log(newArr)

其实就是使用object,keys去进行转换,结果:

后来查资料发现了更有效率的方法(不像我这种暴力方法),在这里也分享给大家

代码

如果你是一维数组,只需要这样
 function copyTransFun(data) {
      data.forEach((item, value) => {
        if (item.val) {
          item.value= item.val;
          delete item.val;
        }
      });
    }
    copyTransFun(data)   //data为后台数据

如果你是二维数组,你可以加入递归,如udata是一个二维数组对象
       if (item.udata) {
          item.children = item.udata;
          delete item.userList;
          if (item.children.length) {
            this.copyTransFun(item.children);
          }
        }

标签:val,keys,value,newObj,item,json,传过来,后台,data
来源: https://www.cnblogs.com/lzqailq/p/lzqailq_14.html