根据对象数组中相同属性名合并数据

roleArr=[

     {type: "bar", barWidth: 5, name: "name1", data: 206}

    {type: "bar", barWidth: 5, name: "name2", data: 198}

     {type: "bar", barWidth: 5, name: "name3", data: 165}

    {type: "bar", barWidth: 5, name: "name1", data: 149}

     {type: "bar", barWidth: 5, name: "name2", data: 132}

     {type: "bar", barWidth: 5, name: "name3", data: 121}

    {type: "bar", barWidth: 5, name: "name1", data: 119}

    {type: "bar", barWidth: 5, name: "name2", data: 92}

]

 let newArr = [];

  let tempArr = [];

 //根据name属性整合数据

for (let i = 0; i < roleArr.length; i++) {

        if (tempArr.indexOf(roleArr[i].name) === -1) {

              newArr.push({

                    type: roleArr[i].type,

                    barWidth: roleArr[i].barWidth,

                    name: roleArr[i].name,

                    data: [roleArr[i].data]

              });

          tempArr.push(roleArr[i].name);

        } else {

          for (let j = 0; j < newArr.length; j++) {

                if (newArr[j].name == roleArr[i].name) {

                      newArr[j].data.push(roleArr[i].data);

                }

          }

       }

 }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。