js用map给json 数组添加key值,进行数据格式转换

227 阅读1分钟
// 想根据envKeys和envValue 添加一个tabledata的数据,就是想把data变成data1的格式
let data = [{
  envKeys: [MYSQL1,MYSQL2,MYSQL3],
  envValue: [1,2,3]
  name: data1
},
{
  envKeys: [MYSQL1,MYSQL2,MYSQL3],
  envValue: [1,2,3]
  name: data2
},
{
  envKeys: [MYSQL1,MYSQL2,MYSQL3],
  envValue: [1,2,3]
  name: data3
}]

let data1 = [{
  envKeys: [MYSQL1,MYSQL2,MYSQL3],
  envValue: [1,2,3]
  name: data1,
  tableData: [{
    key: MYSQL1,
    value: 1,
    name: data1
  },{
    key: MYSQL2,
    value: 2,
    name: data1
  },
  {
    key: MYSQL3,
    value: 3,
    name: data1
  }]
},
{
  envKeys: [MYSQL1,MYSQL2,MYSQL3],
  envValue: [1,2,3]
  name: data2,
  tableData: [{
    key: MYSQL1,
    value: 1,
    name: data2
  },{
    key: MYSQL2,
    value: 2,
    name: data2
  },
  {
    key: MYSQL3,
    value: 3,
    name: data2
  }]
},
{
  envKeys: [MYSQL1,MYSQL2],
  envValue: [1,2]
  name: data3,
  tableData: [{
    key: MYSQL1,
    value: 1,
    name: data3
  },{
    key: MYSQL2,
    value: 2,
    name: data3
  }]
}]

利用map

          let data1= data.map(obj => {
            let tableData = [];
            obj.envKeys.forEach((key, index) => {
              tableData.push({
                key: key,
                value: obj.envValues[index],
                name: obj.name
              });
            });
            return {...obj, tableData: tableData};
          });
//第二种方法

const data1 = data.map((item) => ({
 ...item,
 tableData: item.envKeys.map((key, index_key) => ({
  key,
  value: item.envValue[index_key],
  name: item.name}))
 }));