根据数组中相同的id生成一个新的数组

问题描述:

把list数组中相同的id合成一个,mat_qlt_id的值作为key, value作为值, 组成新数组newList

 const list = [
      {
        sample_id: '1',
        mat_qlt_id: 'M-015-4',
        value: 3,
      },
      {
        sample_id: '2',
        mat_qlt_id: 'M-015-4',
        value: 33,
      },
      {
        sample_id: '1',
        mat_qlt_id: 'M-015-5',
        value: 2,
      },
      {
        sample_id: '1',
        mat_qlt_id: 'M-015-6',
        value: 1,
      },
      {
        sample_id: '2',
        mat_qlt_id: 'M-015-5',
        value: 22,
      },
      {
        sample_id: '3',
        mat_qlt_id: 'M-015-6',
        value: 11,
      },
      {
        sample_id: '2',
        mat_qlt_id: 'M-015-6',
        value: 11,
      },
    ];

newList

 

代码如下:

    const newList = [];

    list.forEach((data) => {
      for (let i = 0; i < newList.length; i++) {
        if (newList[i].sample_id === data.sample_id) {
          newList[i][data.mat_qlt_id] = data.value;
          return;
        }
      }
      newList.push({
        sample_id: data.sample_id,
        [data.mat_qlt_id]: data.value,
      });
    });
    console.log(newList);

  

posted @ 2018-10-19 16:05  簌大侠  阅读(2765)  评论(0编辑  收藏  举报