原有格式
list=[
{
produceName:'測試1',
productCode:'cs01',
num:1,
...
},
{
produceName:'測試1',
productCode:'cs01',
num:4,
...
},
{
produceName:'測試2',
productCode:'cs02',
num:1,
...
},
]
要變成的格式
newList=[
{
produceName:'測試1',
child:[
{
productCode:'cs01',
num:1,
...
},
{
productCode:'cs01',
num:4,
...
}
]
},
{
produceName:'測試2',
child:[
{
productCode:'cs02',
num:1,
...
}
]
},
]
如何通過代碼進(jìn)行實(shí)現(xiàn)
const groupedProducts = [];
res.data.boxCodeInfoList.map(product => {
if (groupedProducts.some(grpProduct => grpProduct.proName === product.proName)) {
// 如果產(chǎn)品名已存在偿洁,則找到相應(yīng)的產(chǎn)品對象磷蜀,并添加碼值和數(shù)值
const index = groupedProducts.findIndex(grpProduct => grpProduct.proName ===product.proName);
groupedProducts[index].childList.push({
boxCode: product.boxCode,
num: product.num,
boxCode: product.boxCode,
codeType: product.codeType,
proCode: product.proCode,
typeDesc: product.typeDesc
});
} else {
// 如果產(chǎn)品名不存在掂为,則創(chuàng)建一個(gè)新的產(chǎn)品對象搏讶,并添加到數(shù)組中
groupedProducts.push({
proName: product.proName,
childList: [{
boxCode: product.boxCode,
num: product.num,
boxCode: product.boxCode,
codeType: product.codeType,
proCode: product.proCode,
typeDesc: product.typeDesc
}],
});
}
});
console.log(groupedProducts)
// 碼值列表
this.boxCodeInfoList = groupedProducts