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