SOURCE

let data = [
    { spu_id: '1', sku_id: '1101', goods_multi_type: 2, name: '多规格1', specs_list: [1, 2, 3] },
    { spu_id: '1', sku_id: '1102', goods_multi_type: 2, name: '多规格1', specs_list: [4, 5, 6] },
    { spu_id: '2', sku_id: '2211', goods_multi_type: 2, name: '多规格1', specs_list: [24, 25, 26] },
    { spu_id: '3', sku_id: '3311', goods_multi_type: 1, name: '单规格' }
]


const set = new Set()
const combinedArr = data.reduce((prev, cur) => {
    const { spu_id, goods_multi_type, name } = cur;
    // if (!set.has(spu_id)) {
    //     set.add(spu_id)
    //     if (goods_multi_type === 2) {
    //         prev.push({ spu_id, goods_multi_type, name, customCheckSpecArr: [cur] })
    //     } else {
    //         prev.push({ spu_id, goods_multi_type, name })
    //     }

    // } else {
    //     const target = prev.find(spec => spec.spu_id === spu_id);
    //     if (target.goods_multi_type === 2) {
    //         target.customCheckSpecArr.push(cur)
    //     }
    // }
    const {spu_id,goods_multi_type, name} = cur;
   const exist = prev.find(spec => spec.spu_id === spu_id)
   if (!exist) {
      prev.push({spu_id, goods_multi_type,name, customCheckSpecArr: [cur]})
    } else {
      exist.customCheckSpecArr.push(cur)
    }
    return prev
}, [])
// 合并后的数据格式
// [
//  { 
//      spu_id: '1',
//      goods_multi_type: 2, 
//      name: '多规格1',
//      customCheckSpecArr: [
//          { spu_id: '1', sku_id: '1101',goods_multi_type: 2, name: '多规格1', specs_list: [1,2,3] },
//        { spu_id: '1', sku_id: '1102',goods_multi_type: 2, name: '多规格1', specs_list: [4,5,6]  },
//      ]
//   },
//    {
//         spu_id: '2',
//      goods_multi_type: 2,
//     name: '多规格1', 
//    customCheckSpecArr: [
//     { spu_id: '2', sku_id: '2211',goods_multi_type: 2,name: '多规格1', specs_list: [24,25,26]},
//    ]
//    },
//    { spu_id: '3', sku_id: '3311',goods_multi_type: 1, name: '单规格' }
// ]
console.log('combinedArr', combinedArr)
console 命令行工具 X clear

                    
>
console