如何把数据扁平化处理

const arr={
    year:'2019',
    all:[
      {
        name:'a',
        test:[
        {month: "01", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        {month: "02", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        {month: "03", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        {month: "10", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        {month: "11", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        {month: "12", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        ],
      },
      {
        name:'b',
        test:[
          {month: "01", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
          {month: "08", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
          {month: "09", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
          {month: "10", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
          {month: "11", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
          {month: "12", jcjx: 25450.29, scx: 1747.98, zqx: 1917, ywx: 869.22},
        ],
      }
    ]
  }
  
  const data1 = [];
    for (let i = 0; i < arr.all.length; i++) {
      for(let j = 0; j < arr.all[i].test.length; j++ ) {
        data1.push({
          projectName: arr.all[i].name,
          [`jcjx_month_${arr.all[i].test[j].month}`]: arr.all[i].test[j].jcjx,
          [`scx_month_${arr.all[i].test[j].month}`]: arr.all[i].test[j].scx,
          [`zqx_month_${arr.all[i].test[j].month}`]: arr.all[i].test[j].zqx,
          [`ywx_month_${arr.all[i].test[j].month}`]: arr.all[i].test[j].ywx,
        });
      }
    }
  //得到如下样式:
  

clipboard.png

我想把同一个ProjectName的所有内容合并到一个对象中,变成包含2个对象的形式,我的代码要如何改进?求解惑。
{projectName:"a",jcjx_month_01:25450.29,.......jcjx_month_12:25450.29}
{projectName:"b",jcjx_month_01:25450.29,.......jcjx_month_12:25450.29}

阅读 2.8k
1 个回答

用了一个特别笨的方法暂时整出来了,期待大神的点拨!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进