根据数组中相同的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);